弱智的问题,如何屏蔽输入的“'”字符,目的:防止非法的身份验证。
我是用常用的
select * from user_info where "user_name"="输入" and "password"="输入"
来判断表内是否有相应的name 和 password 来验证身份
问题点数:20、回复次数:7Top
1 楼xddy(足球小将)回复于 2001-09-19 14:53:04 得分 5
在提交前
flag=true
for (i=1;i<str.length;i++){
if (str.charat(i)=="'"){
return false
}
}Top
2 楼wybm(310)回复于 2001-09-19 14:55:30 得分 10
为什么要屏蔽输入的“'”字符,你没理由不让用户输入“'”字符,比如他的名字就叫 MIKE's?
但你可以在你的代码中处理:
user_name=request.form("user_name")
user_name=replace(user_name,"'","''")
如果PASSWORD字段为字符型则:
password=request.form("password")
password=replace(password,"'","''")
sql="select * from user_info where user_name='"&user_name& "' and password='"&password & "'"
否则:
sql="select * from user_info where user_name='"&user_name& "' and password="&password
Top
3 楼balloy()回复于 2001-09-19 14:58:52 得分 0
最好服务器端也验证:
If (Instr(1, str, "''") > 0) Then '有单引号
...Top
4 楼balloy()回复于 2001-09-19 15:01:34 得分 5
wybm,让用户输入'是很痛苦的,很多地方都可能会有问题,不过如果一定要'的话,
还是改成:
sql="select * from user_info where user_name='"&user_name& "'
然后再判断password吧Top
5 楼Dsoul(由MSSql弱智到Oracle弱智)回复于 2001-09-19 16:04:56 得分 0
function rule_str(unrule_str) //规划字符串,将SQL敏感的"'"替换为"''"
unrule_str=replace(unrule_str,"'","''")
rule_str=trim(unrule_str)
end function
asp 版提交字串检测Top
6 楼ba_saner(老张)回复于 2001-09-19 17:21:37 得分 0
多谢各位,我试试Top
7 楼zhangdawei_1976(zdw)回复于 2001-09-19 17:38:50 得分 0
replace(str,"'","''")Top




