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

asp中防止脚本注入攻击
作者:未知高手

<%
    SQL_injdata   =   " '|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare "
    SQL_inj   =   split(SQL_Injdata, "| ")

    If   Request.QueryString <> " "   Then
        For   Each   SQL_Get   In   Request.QueryString
            For   SQL_Data=0   To   Ubound(SQL_inj)
                if   instr(Request.QueryString(SQL_Get),Sql_Inj(Sql_DATA))> 0   Then
                    Response.Write   " <script   Language=JavaScript> alert( '非法连接!! ') </script> "
                    Response.end
                end   if
            next
        Next
    End   If

    If   Request.Form <> " "   Then
        For   Each   Sql_Post   In   Request.Form
            For   SQL_Data=0   To   Ubound(SQL_inj)
                if   instr(Request.Form(Sql_Post),Sql_Inj(Sql_DATA))> 0   Then
                    Response.Write   " <script   Language=JavaScript> alert( '非法连接!! ') </script> "
        Response.end
                end   if
            next
        next
    end   if
%>

转载http://www.webasp.net/article/29/28131.htm

------解决方案--------------------
按上面,改为一下你试试能用不?
<%
SQL_injdata = " '|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare "
SQL_inj = split(SQL_Injdata, "| ")
request_str=Request.QueryString&Request.Form

If request_str <> " " Then
For SQL_Data=0 To Ubound(SQL_inj)
if instr(request_str,Sql_Inj(Sql_DATA))> 0 Then
Response.Write " <script Language=JavaScript> alert( '非法连接!! ') </script> "
Response.end
end if
next
End If
%>
理论上是可行的。
------解决方案--------------------
感觉效果不是很好

学习下咯,=。=谢谢楼上2位
------解决方案--------------------
找就出来了,你可以自己下载函数
------解决方案--------------------
这么麻烦,就过滤单引号行了
------解决方案--------------------
他那个通用,但限制太多,replace ',trim就够了
------解决方案--------------------
sql语句中把通配符,转义符都用上,安全,简单。
用不上楼主说的吧。
------解决方案--------------------
转换单引号,exec,delete,update应该够了
------解决方案--------------------
呵呵,上面的,表操作的不过滤吗?。。。。。