zoukankan      html  css  js  c++  java
  • ASP防注入Function

    '=====================================================================
    '
    --- 參數說明---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 '//可以為空,或是為數值型
                IF ParaValue<>"" and not isNumeric(ParaValue) then
                     
    str=str1 & ParaName & "必須為數值型!" & str2
                     response.Write(
    str):response.End()
                
    end if
            
    Case '//不能為空,只允許是數值型
                IF ParaValue="" or not isNumeric(ParaValue) then
                     
    str=str1 & ParaName & "必須為數值型!" & str2
                     response.Write(
    str):response.End()
                
    end if
            
    Case '//可以為空,或是日期型
                IF ParaValue<>"" and not isdate(ParaValue) then
                     
    str=str1 & ParaName & "必須為日期型!" & str2
                     response.Write(
    str):response.End()
                
    end if
            
    Case '//如果要求要將'換成''號處理的
                ParaValue=replace(ParaValue,"'","''")
            
    Case else'//字符串的處理,如果是傳給存儲過程或是帶參數的SQL執行時,不需要進行替換處理
                ParaValue=ParaValue
        
    End Select
        rq
    =ParaValue
    End function

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

    代码
    Function Checkstr(Str)  
        
    If Isnull(Str) Then  
            CheckStr 
    = "" 
            
    Exit Function   
        
    End If  
        Str 
    = Replace(Str,Chr(0),""1-11)  
        Str 
    = Replace(Str, """"""""""1-11)  
        Str 
    = Replace(Str,"<","<"1-11)  
        Str 
    = Replace(Str,">",">"1-11)   
        Str 
    = Replace(Str, "script""script"1-10)  
        Str 
    = Replace(Str, "SCRIPT""SCRIPT"1-10)  
        Str 
    = Replace(Str, "Script""Script"1-10)  
        Str 
    = Replace(Str, "script""Script"1-11)  
        Str 
    = Replace(Str, "object""object"1-10)  
        Str 
    = Replace(Str, "OBJECT""OBJECT"1-10)  
        Str 
    = Replace(Str, "Object""Object"1-10)  
        Str 
    = Replace(Str, "object""Object"1-11)  
        Str 
    = Replace(Str, "applet""applet"1-10)  
        Str 
    = Replace(Str, "APPLET""APPLET"1-10)  
        Str 
    = Replace(Str, "Applet""Applet"1-10)  
        Str 
    = Replace(Str, "applet""Applet"1-11)  
        Str 
    = Replace(Str, "[""[")  
        Str 
    = Replace(Str, "]""]")  
        Str 
    = Replace(Str, """"""1-11)  
        Str 
    = Replace(Str, "=""="1-11)  
        Str 
    = Replace(Str, "'""''"1-11)  
        Str 
    = Replace(Str, "select""select"1-11)  
        Str 
    = Replace(Str, "execute""execute"1-11)  
        Str 
    = Replace(Str, "exec""exec"1-11)  
        Str 
    = Replace(Str, "join""join"1-11)  
        Str 
    = Replace(Str, "union""union"1-11)  
        Str 
    = Replace(Str, "where""where"1-11)  
        Str 
    = Replace(Str, "insert""insert"1-11)  
        Str 
    = Replace(Str, "delete""delete"1-11)  
        Str 
    = Replace(Str, "update""update"1-11)  
        Str 
    = Replace(Str, "like""like"1-11)  
        Str 
    = Replace(Str, "drop""drop"1-11)  
        Str 
    = Replace(Str, "create""create"1-11)  
        Str 
    = Replace(Str, "rename""rename"1-11)  
        Str 
    = Replace(Str, "count""count"1-11)  
        Str 
    = Replace(Str, "chr""chr"1-11)  
        Str 
    = Replace(Str, "mid""mid"1-11)  
        Str 
    = Replace(Str, "truncate""truncate"1-11)  
        Str 
    = Replace(Str, "nchar""nchar"1-11)  
        Str 
    = Replace(Str, "char""char"1-11)  
        Str 
    = Replace(Str, "alter""alter"1-11)  
        Str 
    = Replace(Str, "cast""cast"1-11)  
        Str 
    = Replace(Str, "exists""exists"1-11)  
        Str 
    = Replace(Str,Chr(13),"  50."1-11)  
        CheckStr 
    = Replace(Str,"'","''"1-11)  
    End Function  

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

    申明

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

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

  • 相关阅读:
    he canvas has been tainted by cross-origin data and tainted canvases may not be exported
    Uncaught SecurityError: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported.
    HOW TO REPLACE ALL OCCURRENCES OF A CHARACTER IN A STD::STRING
    one or more multiply defined symbols found
    Std::map too few template arguments
    Always run a program in administrator mode in Windows 10
    JSON.parse 必须用双引号包起来
    jni4net使用小结
    Cannot generate C# proxy dll with JNI4NET tool, running batch file as trusted assembly?
    Java access to the Domino Objects, Part 1
  • 原文地址:https://www.cnblogs.com/Athrun/p/1333631.html
Copyright © 2011-2022 走看看