≮海浪轻风≯

笑对人生,珍惜所有!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

安全问题--登录中输入'or'

Posted on 2007-06-06 22:36  ≮海浪轻风≯  阅读(145)  评论(0)    收藏  举报

登陆中都输入'or'登陆成功了,

原因:
    如果客户输入正确的用户名和密码,如userid="zhang" password="12345",代入上式为:
       strSql="Select * From users Where userid='zhang' and password='12345'"
   
这样就不会有问题!
   
   
但是如果客户输入userid="'or'",密码为"'or'",代入上式结果为:
       strSql="Select * From users Where userid=''or'' and password=''or''"
   
这里面的or此时变成了SQL语句中的逻辑运算符号了,这条语句就会返回所有的记录,当然显示结果就是找到了,如果此时显示的话,就是记录集中第一条记录。

解决办法:

怎么解决这样的问题呢?就是不允许客户输入单引号和双引号,或者在之前利用Replace函数替换其中的单引号和双引号为字符实体:
      strTemp=Replace(strTemp,chr(39),"´")  '
替换单引号
      strTemp=Replace(strTemp,chr(34),""")   '
替换双引号
   
或者,直接去除:
      strTemp=Replace(strTemp,chr(39),"")   '
替换单引号
      strTemp=Replace(strTemp,chr(34),"")   '
替换双引号