'=====================================================================

'--- 參數說明---asp防sql注入

'ParaName:參數名稱--字符型

'ParaType:參數類型-數字型(0表示為數值型,其它表示字符型)

'=======================================================================

Function rq(ParaName,ParaType)

    Dim ParaValue

    ParaValue=trim(Request(ParaName))

    If ParaType=0 then

        If ParaValue="" or not isNumeric(ParaValue) then

                response.Write("<Script Language='javascript'>alert('參數" & ParaName & "必須為數值型!');window.history.back(-1)</Script>")

                response.End()

        End if

    Else

        ParaValue=replace(ParaValue,"'","''")

    End if

    rq=ParaValue

End function


'=====================================================================

'--- 參數說明---asp防sql注入

'ParaName:參數名稱--字符型

'ParaType:參數類型-數字型(0表示為數值型,其它表示字符型)

'=======================================================================

Function rq(ParaName,ParaType)

    Dim ParaValue

    ParaValue=trim(Request(ParaName))

    dim str,str1,str2

    str=""

    str1="<Script Language='javascript'>alert('參數"

    str2="');window.history.back(-1)</Script>"

    Select case ParaType

        Case 0  '//可以為空,或是為數值型

            IF ParaValue<>"" and not isNumeric(ParaValue) then

                 str=str1 & ParaName & "必須為數值型!" & str2

                 response.Write(str):response.End()

            end if

        Case 1  '//不能為空,只允許是數值型

            IF ParaValue="" or not isNumeric(ParaValue) then

                 str=str1 & ParaName & "必須為數值型!" & str2

                 response.Write(str):response.End()

            end if

        Case 2  '//可以為空,或是日期型

            IF ParaValue<>"" and not isdate(ParaValue) then

                 str=str1 & ParaName & "必須為日期型!" & str2

                 response.Write(str):response.End()

            end if

        Case 3  '//如果要求要將'換成''號處理的

            ParaValue=replace(ParaValue,"'","''")

        Case else'//字符串的處理,如果是傳給存儲過程或是帶參數的SQL執行時,不需要進行替換處理

            ParaValue=ParaValue

    End Select

    rq=ParaValue

End function


 

​http://www.secnumen.com/technology/anquanwenzhai.htm​​ 

 

 

 


ASP防注入Function_字符串ASP防注入Function_sql_02代码


Function Checkstr(Str)  

    If Isnull(Str) Then  

        CheckStr = "" 

        Exit Function   

    End If  

    Str = Replace(Str,Chr(0),"", 1, -1, 1)  

    Str = Replace(Str, """", """""", 1, -1, 1)  

    Str = Replace(Str,"<","<", 1, -1, 1)  

    Str = Replace(Str,">",">", 1, -1, 1)   

    Str = Replace(Str, "script", "script", 1, -1, 0)  

    Str = Replace(Str, "SCRIPT", "SCRIPT", 1, -1, 0)  

    Str = Replace(Str, "Script", "Script", 1, -1, 0)  

    Str = Replace(Str, "script", "Script", 1, -1, 1)  

    Str = Replace(Str, "object", "object", 1, -1, 0)  

    Str = Replace(Str, "OBJECT", "OBJECT", 1, -1, 0)  

    Str = Replace(Str, "Object", "Object", 1, -1, 0)  

    Str = Replace(Str, "object", "Object", 1, -1, 1)  

    Str = Replace(Str, "applet", "applet", 1, -1, 0)  

    Str = Replace(Str, "APPLET", "APPLET", 1, -1, 0)  

    Str = Replace(Str, "Applet", "Applet", 1, -1, 0)  

    Str = Replace(Str, "applet", "Applet", 1, -1, 1)  

    Str = Replace(Str, "[", "[")  

    Str = Replace(Str, "]", "]")  

    Str = Replace(Str, """", "", 1, -1, 1)  

    Str = Replace(Str, "=", "=", 1, -1, 1)  

    Str = Replace(Str, "'", "''", 1, -1, 1)  

    Str = Replace(Str, "select", "select", 1, -1, 1)  

    Str = Replace(Str, "execute", "execute", 1, -1, 1)  

    Str = Replace(Str, "exec", "exec", 1, -1, 1)  

    Str = Replace(Str, "join", "join", 1, -1, 1)  

    Str = Replace(Str, "union", "union", 1, -1, 1)  

    Str = Replace(Str, "where", "where", 1, -1, 1)  

    Str = Replace(Str, "insert", "insert", 1, -1, 1)  

    Str = Replace(Str, "delete", "delete", 1, -1, 1)  

    Str = Replace(Str, "update", "update", 1, -1, 1)  

    Str = Replace(Str, "like", "like", 1, -1, 1)  

    Str = Replace(Str, "drop", "drop", 1, -1, 1)  

    Str = Replace(Str, "create", "create", 1, -1, 1)  

    Str = Replace(Str, "rename", "rename", 1, -1, 1)  

    Str = Replace(Str, "count", "count", 1, -1, 1)  

    Str = Replace(Str, "chr", "chr", 1, -1, 1)  

    Str = Replace(Str, "mid", "mid", 1, -1, 1)  

    Str = Replace(Str, "truncate", "truncate", 1, -1, 1)  

    Str = Replace(Str, "nchar", "nchar", 1, -1, 1)  

    Str = Replace(Str, "char", "char", 1, -1, 1)  

    Str = Replace(Str, "alter", "alter", 1, -1, 1)  

    Str = Replace(Str, "cast", "cast", 1, -1, 1)  

    Str = Replace(Str, "exists", "exists", 1, -1, 1)  

    Str = Replace(Str,Chr(13),"  50.", 1, -1, 1)  

    CheckStr = Replace(Str,"'","''", 1, -1, 1)  

End Function  


 

 

 

最好的辦法是使用存儲過程或是參數化sql.這樣才可以完全防止注入.


申明

非源创博文中的内容均收集自网上,若有侵权之处,请及时联络,我会在第一时间内删除.再次说声抱歉!!!

博文欢迎转载,但请给出原文连接。