登陆中都输入'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),"") '替换双引号
浙公网安备 33010602011771号