1、下列SQL防注入程序原创是一位网名为“枫”的程序员。
2、把下列代码生成一个通用文件,在需要SQL防注入的页面代码开头引用此文件,例。
3、如果已有一个数据库连接通用文件,也可以把下列代码加进去。
4、建立aspsafe.mdb数据库以收集攻击信息,SqlIn_IP(攻击者IP),SqlIn_WEB(攻击页面)、SqlIn_TIME(攻击时间)、
SqlIn_FS(攻击方式)、SqlIn_SJ(攻击所用字符串)等。
<%
'--------定义部份------------------
Dim Fy_Post,Fy_Get,Fy_In,Fy_Inf,Fy_Xh,Fy_db,Fy_dbstr
'自定义需要过滤的字串,用 "枫" 分隔
Fy_In = "'枫;枫and枫exec枫insert枫select枫delete枫update枫count枫*枫%枫chr枫mid枫master枫truncate枫char枫declare"
'----------------------------------
%>
<%
Fy_Inf = split(Fy_In,"枫")
'--------POST部份------------------
If Request.Form<>"" Then
For Each Fy_Post In Request.Form
For Fy_Xh=0 To Ubound(Fy_Inf)
If Instr(LCase(Request.Form(Fy_Post)),Fy_Inf(Fy_Xh))<>0 Then
'--------写入数据库----------头-----
Fy_dbstr="DBQ="+server.mappath("..\data\aspsafe.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
Set Fy_db=Server.CreateObject("ADODB.CONNECTION")
Fy_db.open Fy_dbstr
Fy_db.Execute("insert into SqlIn(Sqlin_IP,SqlIn_Web,SqlIn_FS,SqlIn_CS,SqlIn_SJ) values('"&Request.ServerVariables("REMOTE_ADDR")&"','"&Request.ServerVariables("URL")&"','POST','"&Fy_Post&"','"&replace(Request.Form(Fy_Post),"'","''")&"')")
Fy_db.close
Set Fy_db = Nothing
'--------写入数据库----------尾-----
Response.Write ""
Response.Write "非法操作!系统做了如下记录↓
"
Response.Write "操作IP:"&Request.ServerVariables("REMOTE_ADDR")&"
"
Response.Write "操作时间:"&Now&"
"
Response.Write "操作页面:"&Request.ServerVariables("URL")&"
"
Response.Write "提交方式:POST
"
Response.Write "提交参数:"&Fy_Post&"
"
Response.Write "提交数据:"&Request.Form(Fy_Post)
Response.End
End If
Next
Next
End If
'----------------------------------
'--------GET部份-------------------
If Request.QueryString<>"" Then
For Each Fy_Get In Request.QueryString
For Fy_Xh=0 To Ubound(Fy_Inf)
If Instr(LCase(Request.QueryString(Fy_Get)),Fy_Inf(Fy_Xh))<>0 Then
'--------写入数据库----------头-----
Fy_dbstr="DBQ="+server.mappath("..\data\aspsafe.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
Set Fy_db=Server.CreateObject("ADODB.CONNECTION")
Fy_db.open Fy_dbstr
Fy_db.Execute("insert into SqlIn(Sqlin_IP,SqlIn_Web,SqlIn_FS,SqlIn_CS,SqlIn_SJ) values('"&Request.ServerVariables("REMOTE_ADDR")&"','"&Request.ServerVariables("URL")&"','GET','"&Fy_Get&"','"&replace(Request.QueryString(Fy_Get),"'","''")&"')")
Fy_db.close
Set Fy_db = Nothing
'--------写入数据库----------尾-----
Response.Write ""
Response.Write "非法操作!系统做了如下记录:
"
Response.Write "操作IP:"&Request.ServerVariables("REMOTE_ADDR")&"
"
Response.Write "操作时间:"&Now&"
"
Response.Write "操作页面:"&Request.ServerVariables("URL")&"
"
Response.Write "提交方式:GET
"
Response.Write "提交参数:"&Fy_Get&"
"
Response.Write "提交数据:"&Request.QueryString(Fy_Get)
Response.End
End If
Next
Next
End If
%>