asp防SQL注入函数

本文介绍了一种使用VBScript实现的SQL防注入方法,通过过滤特定关键词来预防SQL注入攻击,并提供了利用正则表达式进行过滤的例子。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 'SQL防注入函数,调用方法,在需要防注入的地方替换以前的request("XXXX")为SafeRequest("XXXX")   
  2. 'www.yongfa365.com   
  3.   
  4. Function SafeRequest(ParaValue)   
  5.     ParaValue = Trim(Request(ParaValue))   
  6.     If ParaValue = "" Then  
  7.         SafeRequest = ""  
  8.         Exit Function  
  9.     End If  
  10.     '要过滤的字符以","隔开   
  11.     LockValue = "',Select,Update,Delete,insert,Count(,drop table,truncate,Asc(,Mid(,char(,xp_cmdshell,exec master,net localgroup administrators,And,net user,Or"  
  12.     LockValue = Split(LockValue, ",")   
  13.     '判断是否有注入   
  14.     For i = 0 To UBound(LockValue)   
  15.         If InStr(LCase(ParaValue), LCase(LockValue(i)))>0 Then  
  16.             errmsg = 1   
  17.             Exit For  
  18.         End If  
  19.     Next  
  20.     '注入处理   
  21.     If errmsg = 1 Then  
  22.         Response.Write "<script language='javascript'>alert('可疑的SQL注入请求!');window.history.go(-1);</script>"  
  23.         response.End  
  24.     Else  
  25.         SafeRequest = ParaValue   
  26.     End If  
  27. End Function  
'SQL防注入函数,调用方法,在需要防注入的地方替换以前的request("XXXX")为SafeRequest("XXXX")
'www.yongfa365.com

Function SafeRequest(ParaValue)
    ParaValue = Trim(Request(ParaValue))
    If ParaValue = "" Then
        SafeRequest = ""
        Exit Function
    End If
    '要过滤的字符以","隔开
    LockValue = "',Select,Update,Delete,insert,Count(,drop table,truncate,Asc(,Mid(,char(,xp_cmdshell,exec master,net localgroup administrators,And,net user,Or"
    LockValue = Split(LockValue, ",")
    '判断是否有注入
    For i = 0 To UBound(LockValue)
        If InStr(LCase(ParaValue), LCase(LockValue(i)))>0 Then
            errmsg = 1
            Exit For
        End If
    Next
    '注入处理
    If errmsg = 1 Then
        Response.Write "<script language='javascript'>alert('可疑的SQL注入请求!');window.history.go(-1);</script>"
        response.End
    Else
        SafeRequest = ParaValue
    End If
End Function

下边是用正则表达式过滤的例子

  1.   
  2. 'SQL防注入函数,调用方法,在需要防注入的地方替换以前的request("XXXX")为SafeRequest("XXXX")      
  3. 'www.yongfa365.com      
  4.      
  5. Function SafeRequest(ParaValue)   
  6.     ParaValue = Trim(Request(ParaValue))   
  7.     '正则表达式过滤   
  8.     Set re = New RegExp  
  9.     '禁止使用的注入字符   
  10.     re.Pattern = "/'|Select|Update|Delete|insert|Count|drop table|truncate|Asc|Mid|char|xp_cmdshell|exec master|net localgroup administrators|And|net user|Or"  
  11.     re.IgnoreCase = True  
  12.     re.Global = True  
  13.     Set Matches = re.Execute(ParaValue)   
  14.     RegExpTest = Matches.count  
  15.     '注入处理   
  16.     If RegExpTest >0 Then  
  17.         Response.Write "<script language='javascript'>alert('可疑的SQL注入请求!');window.history.go(-1);</script>"  
  18.         response.End  
  19.     Else  
  20.         SafeRequest = ParaValue   
  21.     End If  
  22. End Function  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值