在asp中加入了防止sql注入代码 如何输入符号
为了防止SQL注入,我的程序加入了如下代码<%Response.Buffer=True'缓存页面'防范get注入IfRequest.QueryString<>""Then...
为了防止SQL注入,我的程序加入了如下代码
<%
Response.Buffer = True '缓存页面
'防范get注入
If Request.QueryString <> "" Then StopInjection(Request.QueryString)
'防范post注入
If Request.Form <> "" Then StopInjection(Request.Form)
'防范cookies注入
If Request.Cookies <> "" Then StopInjection(Request.Cookies)
'正则子函数
Function StopInjection(Values)
Dim regEx
Set regEx = New RegExp
regEx.IgnoreCase = True
regEx.Global = True
regEx.Pattern = "'|;|#|([\s\b+()]+([email=select%7Cupdate%7Cinsert%7Cdelete%7Cdeclare%7C@%7Cexec%7Cdbcc%7Calter%7Cdrop%7Ccreate%7Cbackup%7Cif%7Celse%7Cend%7Cand%7Cor%7Cadd%7Cset%7Copen%7Cclose%7Cuse%7Cbegin%7Cretun%7Cas%7Cgo%7Cexists)[/s/b]select|update|insert|delete|declare|@|exec|dbcc|alter|drop|create|backup|if|else|end|and|or|add|set|open|close|use|begin|retun|as|go|exists)[\s\b[/email]+]*)"
Dim sItem, sValue
For Each sItem In Values
sValue = Values(sItem)
If regEx.Test(sValue) Then
Response.Write "<Script Language=javascript>alert('非法注入!你的行为已被记录!!');history.back(-1);</Script>"
Response.End
End If
Next
Set regEx = Nothing
End function
%>
但是,如果我的表单中出现";"和","等符号时,就不能成功提交.如何解决. 展开
<%
Response.Buffer = True '缓存页面
'防范get注入
If Request.QueryString <> "" Then StopInjection(Request.QueryString)
'防范post注入
If Request.Form <> "" Then StopInjection(Request.Form)
'防范cookies注入
If Request.Cookies <> "" Then StopInjection(Request.Cookies)
'正则子函数
Function StopInjection(Values)
Dim regEx
Set regEx = New RegExp
regEx.IgnoreCase = True
regEx.Global = True
regEx.Pattern = "'|;|#|([\s\b+()]+([email=select%7Cupdate%7Cinsert%7Cdelete%7Cdeclare%7C@%7Cexec%7Cdbcc%7Calter%7Cdrop%7Ccreate%7Cbackup%7Cif%7Celse%7Cend%7Cand%7Cor%7Cadd%7Cset%7Copen%7Cclose%7Cuse%7Cbegin%7Cretun%7Cas%7Cgo%7Cexists)[/s/b]select|update|insert|delete|declare|@|exec|dbcc|alter|drop|create|backup|if|else|end|and|or|add|set|open|close|use|begin|retun|as|go|exists)[\s\b[/email]+]*)"
Dim sItem, sValue
For Each sItem In Values
sValue = Values(sItem)
If regEx.Test(sValue) Then
Response.Write "<Script Language=javascript>alert('非法注入!你的行为已被记录!!');history.back(-1);</Script>"
Response.End
End If
Next
Set regEx = Nothing
End function
%>
但是,如果我的表单中出现";"和","等符号时,就不能成功提交.如何解决. 展开
展开全部
这个很简单啊,你提交表单的时候一般都是登陆了系统的,这样的话,一般的系统都是通过session来验证用户登陆信息的,你可以在最前面加上:
<%
If session("username")<>"admin" then
..........'你的SQL注入代码
End if
%>
以上的代码意思是,如果用户信息不是admin(一般admin是管理员的账户,根据你网站的情况具体修改即可)就执行SQL注入检测。当然你用的SESSION名字可能不一样,比如:session("master")或session("user")之类的,根据具体情况修改即可,有问题可以百度HI我!
<%
If session("username")<>"admin" then
..........'你的SQL注入代码
End if
%>
以上的代码意思是,如果用户信息不是admin(一般admin是管理员的账户,根据你网站的情况具体修改即可)就执行SQL注入检测。当然你用的SESSION名字可能不一样,比如:session("master")或session("user")之类的,根据具体情况修改即可,有问题可以百度HI我!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询