日期:2014-05-17  浏览次数:20977 次

asp网站怎样防止被注入恶意脚本
网上找的一些防止被注入的程序都是有报错误的,请问哪位能提供一些比较强的防注入程序呢?谢谢!!

------解决方案--------------------
<%

'--------定义部份------------------
Dim Fy_Post,Fy_Get,Fy_In,Fy_Inf,Fy_Xh,Fy_db,Fy_dbstr
'自定义需要过滤的字串,用 "防 " 分隔
Fy_In = "’’’’防;防and防exec防insert防select防delete防update防count防*防%防chr防mid防master防truncate防char防declare防 <防> 防=防|防-防_ "
Fy_Inf = split(Fy_In, "防 ")
If Request.Form <> " " Then
For Each Fy_Post In Request.Form
For Fy_Xh=0 To Ubound(Fy_Inf)
If Instr(LCase(Request.Form(Fy_Post)),Fy_Inf(Fy_Xh)) <> 0 Then
Response.Write " <Script Language=JavaScript> alert(’’’’网长友情提示黑客大侠↓请不要在参数中包含非法字符尝试注入攻击本站,本站做起来很不容易的.俺是菜鸟,好怕怕,放俺一马吧!给俺留言’’’’); </Script> "
Response.Write "非法操作!本站已经给大侠您做了如下记录↓ <br> "
Response.Write "操作IP: "&Request.ServerVariables( "REMOTE_ADDR ")& " <br> "
Response.Write "操作时间: "&Now& " <br> "
Response.Write "操作页面: "&Request.ServerVariables( "URL ")& " <br> "
Response.Write "提交方式:POST <br> "
Response.Write "提交参数: "&Fy_Post& " <br> "
Response.Write "提交数据: "&Request.Form(Fy_Post)
Response.End
End If
Next
Next
End If
If Request.QueryString <> " " Then
For Each Fy_Get In Request.QueryString
For Fy_Xh=0 To Ubound(Fy_Inf)
If Instr(LCase(Request.QueryString(Fy_Get)),Fy_Inf(Fy_Xh)) <> 0 Then
Response.Write " <Script Language=JavaScript> alert(’’’’网长友情提示黑客大侠↓请不要在参数中包含非法字符尝试注入攻击本站,本站做起来很不容易的.俺是菜鸟,好怕怕,放俺一马吧!给俺留言’’’’); </Script> "
Response.Write "非法操作!本站已经给大侠您做了如下记录↓ <br> "
Response.Write "操作IP: "&Request.ServerVariables( "REMOTE_ADDR ")& " <br> "
Response.Write "操作时间: "&Now& " <br> "
Response.Write "操作页面: "&Request.ServerVariables( "URL ")& " <br> "
Response.Write "提交方式:GET <br> "
Response.Write "提交参数: "&Fy_Get& " <br> "
Response.Write "提交数据: "&Request.QueryString(Fy_Get)
Response.End
End If
Next
Next
End If

%>