通用的防止SQL注入代码

来源:互联网 发布:怎么找淘宝商家接单 编辑:程序博客网 时间:2024/05/21 18:27

新建sqllin.asp网页文件,编写以下代码检查POST和GET方式提交的所有数据,如果发现有过滤字符,则显示弹出对话框,并中断程序的运行

<%
Dim   SQL_Post,SQL_Get,strFilter,aFilter,i
strFilter=" |;|and|(|)|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare" 
aFilter=split(strFilter,"|") 
If Request.Form<>"" Then  检查POST方式提交的数据
 For Each SQL_Post In Request.Form 
  For i=0 To Ubound(aFilter) 
  If Instr(LCase(Request.Form(SQL_Post)),aFilter(i))<>0 Then 
    此处可添加保存恶意攻击者的信息到数据库
   str=str & "<Script Language=JavaScript>"
   str=str & "alert( 请不要在参数中包含非法字符尝试注入攻击本站!/n/n"
   str=str & "本站已经记录了您的以下数据:/n/n"
   str=str & "操作IP:" & Request.ServerVariables("REMOTE_ADDR")&"/n/n"
   str=str & "操作时间:"& Now & "/n/n"
   str=str & "操作页面:"&Request.ServerVariables("URL")&"/n/n"
   str=str & "提交方式:POST/n/n"
   str=str & "提交参数:"& SQL_Post &"/n/n"
   str=str & "提交数据:"& Request.Form(SQL_Post)
   str=str & "</script>"
   Response.Write str
   Response.End
  End If 
  Next 
 Next 
End If 

If Request.QueryString<>"" Then  检查GET方式提交的数据
 For Each SQL_Get In Request.QueryString 
  For i=0 To Ubound(aFilter) 
  If Instr(LCase(Request.QueryString(SQL_Get)),aFilter(i))<>0 Then 
    此处可添加保存恶意攻击者的信息到数据库
   str= "<Script Language=JavaScript>"
   str=str & "alert( 请不要在参数中包含非法字符尝试注入攻击本站!/n/n"
   str=str & "本站已经记录了您的以下数据:/n/n"
   str=str & "操作IP:" & Request.ServerVariables("REMOTE_ADDR")&"/n/n"
   str=str & "操作时间:"& Now & "/n/n"
   str=str & "操作页面:"&Request.ServerVariables("URL")&"/n/n"
   str=str & "提交方式:GET/n/n"
   str=str & "提交参数:" & SQL_Post &"/n/n"
   str=str & "提交数据:" & Request.QueryString(SQL_Get) & " );"
   str=str & "</script>"
   Response.Write str
   Response.End
  End   If 
  Next 
 Next 
End If    
%>

在过滤字符串strFilter中可根据需要进行添加

在处理用户提交数据的页面首部包含sqlin.asp文件即可

<!--#include file=sqllin.asp-->

 

 

原创粉丝点击