打印本页〗〖打印选项
ASP 中 SQL 防注入程序代码
  将以下代码保存为 *.asp,如 SQL.asp,然后在每个 ASP 页面的头部加入 <!--#include file="SQL.asp"-->,一般只要在前台页面加入即可,后台的页面因为要经常添加数据,为防止过滤检测,还是不要加入这段代码。
<%
dim GuFormGet
dim GuStringFormGet,GuStringFormPost
dim RequestKey,i,j

GuStringFormGet="'|);|and|select|exec|update|count|*|%|chr|mid|master|truncate|char|declare|delete|%20from|insert|="
GuStringFormPost="'|%|&|*|#|=|select|and|set|delete"
GuStringFormGet=Split(GuStringFormGet,"|")
GuStringFormPost=Split(GuStringFormPost,"|")

if LCase(Request.ServerVariables("REQUEST_METHOD"))="get" then
    GuFormGet=true
else
    GuFormGet=false
end if

if GuFormGet then
    for each RequestKey in Request.QueryString
    for i=0 to Ubound(GuStringFormGet)
    if InStr(LCase(Request.QueryString(RequestKey)),GuStringFormGet(i))<>0 then
        call GuMessageSQL()
    end if
    next
    next
else
    for each RequestKey in Request.Form
    for j=0 to Ubound(GuStringFormPost)
    if InStr(LCase(Request.Form(RequestKey)),GuStringFormPost(j))<>0 then
        call GuMessageSQL()
    end if
    next
    next
end if


sub GuMessageSQL()

    Response.write "<html>" &vbCrLf
    Response.write "<head>" &vbCrLf
    Response.write "<title>网站名称</title>" &vbCrLf
    Response.write "<meta http-equiv=""Content-Type"" content=""text/html;charset=gb2312"">" &vbCrLf
    Response.write "<meta http-equiv=""Content-Language"" Content=""zh-CN"">"&vbCrLf
    Response.write "</head>" &vbCrLf
    Response.write "" &vbCrLf
    Response.write "<body>" &vbCrLf
    Response.write "" &vbCrLf
    Response.write "<span style=""font-family:宋体;font-size:14px;color:#FF0000;"">数据提交失败,表单中包含特殊字符。</span><br><br>" &vbCrLf
    Response.write "<a href=""#"" onclick=""JavaScript:history.go(-1);"" style=""font-family:宋体;font-size:12px;color:#C0C0C0;text-decoration:none;"">[后退]</a>" &vbCrLf
    Response.write "" &vbCrLf
    Response.write "</body>" &vbCrLf
    Response.write "</html>" &vbCrLf
    Response.end

end sub
%>



文章作者:未知