海外邮件中继,海外退信中继,美国高速VPS,不限流量VPN,邮局维护和管理,邮件网关,EMOS邮件中继,POSTFIX邮件中继,Winwebmail邮件中继,Winmail邮件中继,DBMail邮件中继,JDMail邮件中继,Exchange邮件中继,MDaemon邮件中继 淘宝店:http://shantan.taobao.com 云邮科技官网:www.yunrelay.com
【字体设置:大 中 小】
以前我发布过一个防止SQL注入的代码,但是现在发现代码还不是很成熟,仅仅可以防止GET的方式的SQL注入,现在把它更新一下,可以同时防止GET,POST,COOKIES攻击的注入:
<%
On Error Resume Next
Dim strTemp,hk
If Trim(Request.QueryString) <> "" Then strTemp =Trim(Request.QueryString)
If Trim(Request.Form) <> "" Then strTemp =Trim(Request.Form)
If Trim(Request.Cookies) <> "" Then strTemp =Trim(Request.Cookies)
strTemp = LCase(strTemp)
hk=0
If Instr(strTemp,"%")<>0 then hk=1
If Instr(strTemp,"count(")<>0 then hk=1
If Instr(strTemp,"asc(")<>0 then hk=1
If Instr(strTemp,"mid(")<>0 then hk=1
If Instr(strTemp,"char(")<>0 then hk=1
If Instr(strTemp,"xp_cmdshell")<>0 then hk=1
If Instr(strTemp,"'")<>0 then hk=1
If Instr(strTemp,"<")<>0 then hk=1
If Instr(strTemp,"exec")<>0 then hk=1
If Instr(strTemp,"declare")<>0 then hk=1
If Instr(strTemp,"char")<>0 then hk=1
If Instr(strTemp,"@")<>0 then hk=1
if hk=1 then
response.write"<center>请勿试图通过提交特殊的字符来注入本站,你的操作已被记录!<br><br>"
response.write"如果你有意见,可以到这里留言:<font color=red><a href=http://www.030904.com/gbook/index.asp>我要留言
</a><br><br>"
response.write "你访问的IP地址是:"&userip
response.end
hk=0
End If
%>
如果要更高级的代码,建议大家使用下面的,通过正则表达式来计算的,这样可能更有效的防止SQL注入了,也一样是可以防止GET,POST,COOKIES方式的:
<%
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+()]+(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+]*)"
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
%>
发表评论 - 不要忘了输入验证码哦!