打印本文 打印本文  关闭窗口 关闭窗口  
突破ip封锁登陆论坛系统
作者:陈鹏  文章来源:eNet  点击数  更新时间:2009/9/11 19:26:51  文章录入:陈鹏  责任编辑:陈鹏

教育部的一纸文件,国内各大高校的bbs一夜之间都被设置成只允许校内发帖。我们学校论坛是采用bbsxp(破论坛系统),本来由于服务器带宽的原因,人气就很低。管理员哥哥又封了校外的ip,不能登陆发帖。好多斑竹都是在用校园里的铁通宽带上网,还有些毕业了的,我们电脑版的可爱的echo,都进不来....(废话一大堆)

  OK让我们开始。

  论坛过滤 ip是在setup.asp这个页, 

  if Request.Cookies("username") <> empty then

  sql="select * from [user] where username='"&HTMLEncode(Request.Cookies("username"))&"'"

  Set Rs=Conn.Execute(SQL)

  if rs.eof then Response.Cookies("username")=""

  if Request.Cookies("userpass") <> rs("userpass") then Response.Cookies("username")=""

  membercode=rs("membercode")

  userface=""rs("userface")&""

  newmessage=rs("newmessage")

  userlife=rs("userlife")

  set rs=nothing

  end if 

  if Request.ServerVariables("HTTP_X_FORWARDED_FOR")=empty then

  remoteaddr=Request.ServerVariables("REMOTE_ADDR")

  else

  remoteaddr=Request.ServerVariables("HTTP_X_FORWARDED_FOR")

  end if 

  if badip<>empty then

  filtrate=split(badip," ")

  for i = 0 to ubound(filtrate)

  if instr(" "remoteaddr&""," "&filtrate(i)&"") > 0 then response.redirect "inc/badip.htm"

  next

  end if 

  if Request.Cookies("skins")=empty then Response.Cookies("skins")=style 

  这段代码就是setup.asp里验证用户这块,先读下吧.如果cookies不为空,则读取数据库验证用户的密码是否正确,正确的话定义变量,把一些需要用到的变量全都用数据库里读出来的数据赋值。然后进行读ip.如果ip属于被封的,则导向badip.htm禁止发登陆。

  我们学校的系统和这个代码有出入,他们是自己改的代码。把校外的ip 全封掉,不过都是在这个基础上改的。他们的验证是另外写了一段代码验证的。应该是在登陆页做的封ip段代码,猜想是先判断cookies是否是真的,如果存在的话就直接跳过验证ip那段。如果为空的话,则用户没有登陆,然后才进行ip验证。他们的思路应该是这样。(没办法,不是我自己的系统,只能猜他们的封ip思路)导致过滤不严密。 
打印本文 打印本文  关闭窗口 关闭窗口