电动碎菜机啥牌好:replace(MM_dupKeyUsernameValue,"'","''")能帮我解释下么?

来源:百度文库 编辑:高校问答 时间:2024/04/28 13:35:29
整句代码是:
MM_dupKeySQL="SELECT CustomerID FROM Customers WHERE CustomerID'"&Replace(MM_dupKeyUsernameValue,"'","''")&"'"
引号,单引号,好乱,谁能帮我分析下,谢谢了!
可是我这里的MM_dupKeyUsernameValue是从FROM中获得的用户ID呀,怎么会有"'"呢?
上面的一句代码是:MM_dupKeyUsernameValue=CStr(Request.Form("txtID"))

其实这里是将变量 MM_dupKeyUsernameValue 中的单引号("'")替换成双引号("''")
---------------------------------------------
一般用户会用这样的用户名或密码,对你的数据库进行攻击,比如:
'1' Or 1 = 1
这样你的SQL语句就变成了
SELECT CustomerID FROM Customers WHERE CustomerID = '1' Or 1 = 1
这样无论什么用户名都能查出来,如果用来检测用户名和密码的正确性就完蛋了。

replace(MM_dupKeyUsernameValue,"'","''")是将MM_dupKeyUsernameValue中的“'”替换成“''”