当前位置:首页 > 服务器类 > 安全防护 > > or1=1等漏洞问题

or1=1等漏洞问题

点击次数:30 次 发布日期:2008-11-29 18:01:53 作者:源代码网


源代码网供稿.

源代码网推荐

or 1=1等漏洞问题 :[虽然是此漏洞出现已久。但还是很多个人自己写的代码有次漏洞,比如上次XX大学的XX国家实验室站点]

  在login.asp中,接收用户输入的Userid和Password数据,并分别赋值给user和pwd,然后再用sql="select * from admin where username="&user&" and password="&pwd&"" 这句来对用户名和密码加以验证。
  以常理来考虑的话,这是个很完整的程序了。而在实际的使用过程中,整套程序也的确可能正常使用。
  但是如果Userid的值和password的值被赋于:safer or1=1 这时,sql="select * from admin where username="&user&" and password="&pwd&"" 就成了:

  sql="select * from reg where user=safer or1=1 and pass=safer or1=1
  怎么样?!我不说大家也明白了吧!
  既然有这样的问题,接下来我们就来看看如何解决它。从上面的程序中各位也可以看出,只要对用户输入的数据进行严格过滤就可以了。具体可以参下面的程序:
  <%
  user=request.from("UserID")
  pass=request.from("password")
  for i=1 to len(UserID)
  cl=mid(UserID,i,1)
  if cl="" or us="%" or us="<" or us=">" then
  response.redirect "54safer ..haha"
  response.end
  end if
  next
  %>
  同样是先取得用户输入数据,然后分析用户输入的每一个字符,如发现异常,则转到错误页面。
  if cl="" or us="%" or us="<" or us=">" then 这一句中可以加入任意的过滤字符,跟据具体情况而定。


源代码网整理以下

网友评论 (0)
会员中心
服务器类
本站推荐
服务器类之精华