找回密码
 开放注册

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

搜索
查看: 981|回复: 0

' or '1'='1'等脚本注入漏洞问题

[复制链接]

586

主题

167

回帖

1015

牛毛

二级牛人

本無情,何必去愛

积分
1015
QQ
发表于 2008-1-18 16:09:59 | 显示全部楼层 |阅读模式 来自 浙江省杭州市
' or '1'='1'等脚本注入漏洞问题
在login.asp中,接收用户输入的Userid和Password数据,并分别赋值给user和 pwd,然后再用sql=\"select * from admin where username=\"&user& \" and password=\"&pwd&\"\" 这句来对用户名和密码加以验证。
  以常理来考虑的话,这是个很完整的程序了。而在实际的使用过程中,整套程序也的确可能正常使用。
  但是如果Userid的值和password的值被赋于:safer’ or’1’=’1’ 这时,sql= \"select * from admin where username=\"&user&\" and password=\"&pwd& \"\" 就成了:
  sql=\"select * from reg where user=safer’ or’1’=’1’ and pass=safer’ or’1’=’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 这一句中可以加入任意的过滤字符,跟据具体情况而定。
您需要登录后才可以回帖 登录 | 开放注册

本版积分规则

帮助|Archiver|小黑屋|通信管理局专项备案号:[2008]238号|NB5社区 ( 皖ICP备08004151号;皖公网安备34010402700514号 )

GMT+8, 2025-1-27 05:28 , Processed in 0.113357 second(s), 16 queries , Yac On.

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表