asp对于sql注入和xss的过滤函数

[ 2011-01-27 13:43:26 | 作者: admin ]
字号: | |
'*********************************************
'检查SQL字符串,并进行过滤
'*********************************************
function ChkSql(mysql)
  if isnull(mysql) or isempty(mysql) or mysql="" then
   mysql = ""
  elseif IsNumeric(mysql) then
   mysql = mysql
         else
           mysql = trim(mysql)
           mysql = replace(mysql,"'","‘",1,-1,1)'不区分大小写
           mysql = replace(mysql,"exec","e xec",1,-1,1)
           'mysql = replace(mysql,";",";",1,-1,1) '此项会将 替换掉
           mysql = replace(mysql,"declare","d eclare",1,-1,1)
           mysql = replace(mysql,"(","(",1,-1,1)
           mysql = replace(mysql,")",")",1,-1,1)
           mysql = replace(mysql,"--","- -",1,-1,1)
           mysql = replace(mysql,"%","%",1,-1,1)
           mysql = replace(mysql,"del","d elete",1,-1,1)
           mysql = replace(mysql,"update","u pdate",1,-1,1)
           mysql = replace(mysql,"insert","i nsert",1,-1,1)
           mysql = replace(mysql,"select","s elect",1,-1,1)
           mysql = replace(mysql,"dbo.","d bo.",1,-1,1)
                     mysql = replace(mysql,"chr.","c hr",1,-1,1)
                     mysql = replace(mysql,"union.","u nion",1,-1,1)
           mysql = replace(mysql,"script","s cript",1,-1,1)
    mysql = replace(mysql,"iframe","i frame",1,-1,1)
       end if
       chksql = mysql
end function





'*************************************
'防XSS注入函数 更新于2009-04-21 by evio
'与ChkSql()相比, ChkXss更加安全
'*************************************
Function ChkXss(byVal ChkStr)
                     Dim Str
                     Str = ChkStr
                     If IsNull(Str) Then
                     CheckStr = ""
                     Exit Function
                     End If
                     Str = Replace(Str, "&", "&")
                     Str = Replace(Str, "'", "´")
                     Str = Replace(Str, """", """)
                     Str = Replace(Str, "<", "&lt;")
                     Str = Replace(Str, ">", "&gt;")
                     Str = Replace(Str, "/", "&#47;")
                     Str = Replace(Str, "*", "&#42;")
                     Str = Replace(Str, "(", "(")
                     Str = Replace(Str, ")", ")")
                     Dim re
                     Set re = New RegExp
                     re.IgnoreCase = True
                     re.Global = True
                     re.Pattern = "(w)(here)"
                     Str = re.Replace(Str, "$1h&#101;re")
                     re.Pattern = "(s)(elect)"
                     Str = re.Replace(Str, "$1el&#101;ct")
                     re.Pattern = "(i)(nsert)"
                     Str = re.Replace(Str, "$1ns&#101;rt")
                     re.Pattern = "(c)(reate)"
                     Str = re.Replace(Str, "$1r&#101;ate")
                     re.Pattern = "(d)(rop)"
                     Str = re.Replace(Str, "$1ro&#112;")
                     re.Pattern = "(a)(lter)"
                     Str = re.Replace(Str, "$1lt&#101;r")
                     re.Pattern = "(d)(elete)"
                     Str = re.Replace(Str, "$1el&#101;te")
                     re.Pattern = "(u)(pdate)"
                     Str = re.Replace(Str, "$1p&#100;ate")
                     re.Pattern = "(\s)(or)"
                     Str = re.Replace(Str, "$1o&#114;")
                     re.Pattern = "(\n)"
                     Str = re.Replace(Str, "$1o&#114;")
                     '----------------------------------
                     re.Pattern = "(java)(script)"
                     Str = re.Replace(Str, "$1scri&#112;t")
                     re.Pattern = "(j)(script)"
                     Str = re.Replace(Str, "$1scri&#112;t")
                     re.Pattern = "(vb)(script)"
                     Str = re.Replace(Str, "$1scri&#112;t")
                     '----------------------------------
                     If Instr(Str, "expression") > 0 Then
                     Str = Replace(Str, "expression", "e&#173;xpression", 1, -1, 0) '防止xss注入
                     End If
                     Set re = Nothing
        
    Str = replace(Str,"script","",1,-1,1)
    Str = replace(Str,"iframe","",1,-1,1)
    Str = replace(Str,"confirm","",1,-1,1)
    Str = replace(Str,"alert","",1,-1,1)
        
                     ChkXss = Str
End Function
  
[最后修改由 admin, 于 2018-10-31 15:51:09]
评论Feed 评论Feed: http://blog.xg98.com/feed.asp?q=comment&id=1632

这篇日志没有评论。

此日志不可发表评论。