|
主题: 如何把特殊字符屏蔽掉
|
 云中游
职务:普通成员
等级:2
金币:1.0
发贴:397
|
#12003/6/10 16:48:00
求助啊,我写了个注册会员系统,注册好后看网站内容需要登录才可以看,但是别人告诉我他只要把帐号和密码都输入a'or'a'='a,即使不注册也可以进去,他说只要把'等特殊字符屏蔽掉就可以解决此问题,我不知如何做
|
 E人风
职务:普通成员
等级:1
金币:0.0
发贴:309
|
#22003/6/10 16:55:47
过滤……
function JudgeString(strInput) dim strTemp dim i dim blnReturn strTemp = "'%?*‘"
i = 0 blnReturn = true do while i if instr(1,strInput,mid(strTemp,i+1,1),0)>0 then blnReturn = false exit do end if i = i+1 loop JudgeString = blnReturn end function
|
 janlay
职务:管理员
等级:7
金币:28.0
发贴:7244
|
#32003/6/10 17:27:32
一般情况下 strOutput=replace(strInput,"'","''")
有时候#字符也会提供攻击的可能性,如果想提高警戒级别,可以在某些输入中禁用这个字符
|
 云中游
职务:普通成员
等级:2
金币:1.0
发贴:397
|
#42003/6/11 19:59:40
不是吧,一句话就可以搞定了?
|
 绿茶
职务:普通成员
等级:8
金币:10.0
发贴:19267
|
#52003/6/11 20:17:36
我一般就这么用,如果只是取文本框的话 a=server.htmlencode(trim(request("a")))
|
 绿茶
职务:普通成员
等级:8
金币:10.0
发贴:19267
|
#62003/6/11 20:19:41
像你这种注册系统,不要同时把用户名与密码一起验证,应分两步,这样就不用怕了
|
 janlay
职务:管理员
等级:7
金币:28.0
发贴:7244
|
#72003/6/13 10:03:44
即使先检查用户名后检查密码,一样可能被攻击。所以关键还是要过滤掉可能会产生攻击的字符。 server.htmlencode只在回显到浏览器时起作用,并不过滤' 关于分步验证的问题,好处是可以返回更多的出错信息。但这个同时也是一个坏处:攻击者可以知道他使用的用户名是否已经存在,如果存在,他只用尝试密码就可以了。所以我推荐的办法是,只要验证没通过,一律返回“拒绝访问”
|
 水木
职务:普通成员
等级:1
金币:0.0
发贴:145
|
#82003/6/14 11:18:02
其实用REPLACE就是简单
|