asp防止SQL注入asp

/ / 2016-02-05   阅读:2497
主要是防asp的几个地方: 一、地址栏参数注入,就是用request.querystring取得值的这个 二、表单参数注入,就是用request.form取得值的这个 三、cookies  其实可以看成一个理儿,就是能输入值,能交互的...
主要是防asp的几个地方:
一、地址栏参数注入,就是用request.querystring取得值的这个
二、表单参数注入,就是用request.form取得值的这个
三、cookies 

其实可以看成一个理儿,就是能输入值,能交互的让用户输入的地方都得做一下防。
做一个函数,截取这些地方提交的值,与一个数组(里面放着要过滤或检查的敏感字符)做一下对比,献上我的一个过滤函数:

Function ChkStr(Str) 
    if Isnull(Str) then 
        ChkStr = "" 
        exit Function  
    End if 
    Str = Replace(Str,Chr(0),"", 1, -1, 1) 
    Str = Replace(Str, """", """, 1, -1, 1) 
    Str = Replace(Str,"<","&lt;", 1, -1, 1) 
    Str = Replace(Str,">","&gt;", 1, -1, 1)  
    Str = Replace(Str, "script", "&#115;cript", 1, -1, 0) 
    Str = Replace(Str, "SCRIPT", "&#083;CRIPT", 1, -1, 0) 
    Str = Replace(Str, "Script", "&#083;cript", 1, -1, 0) 
    Str = Replace(Str, "script", "&#083;cript", 1, -1, 1) 
    Str = Replace(Str, "object", "&#111;bject", 1, -1, 0) 
    Str = Replace(Str, "OBJECT", "&#079;BJECT", 1, -1, 0) 
    Str = Replace(Str, "Object", "&#079;bject", 1, -1, 0) 
    Str = Replace(Str, "object", "&#079;bject", 1, -1, 1) 
    Str = Replace(Str, "applet", "&#097;pplet", 1, -1, 0) 
    Str = Replace(Str, "APPLET", "&#065;PPLET", 1, -1, 0) 
    Str = Replace(Str, "Applet", "&#065;pplet", 1, -1, 0) 
    Str = Replace(Str, "applet", "&#065;pplet", 1, -1, 1) 
    Str = Replace(Str, "[", "&#091;") 
    Str = Replace(Str, "]", "&#093;") 
    Str = Replace(Str, "=", "&#061;", 1, -1, 1) 
    Str = Replace(Str, "’", "&#039;", 1, -1, 1) 
    Str = Replace(Str, "select", "&#115;elect", 1, -1, 1) 
    Str = Replace(Str, "execute", "&#101;xecute", 1, -1, 1) 
    Str = Replace(Str, "exec", "&#101;xec", 1, -1, 1) 
    Str = Replace(Str, "join", "&#106;oin", 1, -1, 1) 
    Str = Replace(Str, "union", "&#117;nion", 1, -1, 1) 
    Str = Replace(Str, "where", "&#119;here", 1, -1, 1) 
    Str = Replace(Str, "insert", "&#105;nsert", 1, -1, 1) 
    Str = Replace(Str, "delete", "&#100;elete", 1, -1, 1) 
    Str = Replace(Str, "update", "&#117;pdate", 1, -1, 1) 
    Str = Replace(Str, "like", "&#108;ike", 1, -1, 1) 
    Str = Replace(Str, "drop", "&#100;rop", 1, -1, 1) 
    Str = Replace(Str, "create", "&#099;reate", 1, -1, 1) 
    Str = Replace(Str, "rename", "&#114;ename", 1, -1, 1) 
    Str = Replace(Str, "count", "&#099;ount", 1, -1, 1) 
    Str = Replace(Str, "chr", "&#099;hr", 1, -1, 1) 
    Str = Replace(Str, "mid", "&#109;id", 1, -1, 1) 
    Str = Replace(Str, "truncate", "&#116;runcate", 1, -1, 1) 
    Str = Replace(Str, "nchar", "&#110;char", 1, -1, 1) 
    Str = Replace(Str, "char", "&#099;har", 1, -1, 1) 
    Str = Replace(Str, "alter", "&#097;lter", 1, -1, 1) 
    Str = Replace(Str, "cast", "&#099;ast", 1, -1, 1) 
    Str = Replace(Str, "exists", "&#101;xists", 1, -1, 1) 
    Str = Replace(Str,VbCrlf, " ", 1, -1, 1) 
    Str = Replace(Str, "  ", "", 1, -1, 1) 
    ChkStr = Str 
End Function

更新数据时,rs(“字段”) = ChkStr(trim(Request.Form("表单参数")))

我要评论

昵称:
验证码:

最新评论

共0条 共0页 10条/页 首页 上一页 下一页 尾页
意见反馈