把下面的代码保存在公用文件里就可以防止注入扫描了,比方说conn.asp 里,建议吧网站后台和前台分离,后台一个conn.asp 前台一个conn.asp 前台conn.asp加如下代码
<% 
Dim flashack_Post,flashack_Get,flashack_In,flashack_Inf,flashack_Xh,flashack_db,flashack_dbstr 
flashack_In = "'※;※and※exec※insert※select※delete※update※count※*※%※chr※mid※master※truncate※char※declare" 
flashack_Inf = split(flashack_In,"※") 
If Request.Form<>"" Then 
For Each flashack_Post In Request.Form 

For flashack_Xh=0 To Ubound(flashack_Inf) 
If Instr(LCase(Request.Form(flashack_Post)),flashack_Inf(flashack_Xh))<>0 Then 
Response.Write "Response.Write "非法操作!系统做了如下记录↓<br>" 
Response.Write "操作IP:"&Request.ServerVariables("REMOTE_ADDR")&"<br>" 
Response.Write "操作时间:"&Now&"<br>" 
Response.Write "操作页面:"&Request.ServerVariables("URL")&"<br>" 
Response.Write "提交方式:POST<br>" 
Response.Write "提交参数:"&flashack_Post&"<br>" 
Response.Write "提交数据:"&Request.Form(flashack_Post) 
Response.End 
End If 
Next 
Next 
End If 
If Request.QueryString<>"" Then 
For Each flashack_Get In Request.QueryString 
For flashack_Xh=0 To Ubound(flashack_Inf) 
If Instr(LCase(Request.QueryString(flashack_Get)),flashack_Inf(flashack_Xh))<>0 Then 
Response.Write "Response.Write "非法操作!flashack已经给你做了如下记录↓<br>" 
Response.Write "操作IP:"&Request.ServerVariables("REMOTE_ADDR")&"<br>" 
Response.Write "操作时间:"&Now&"<br>" 
Response.Write "操作页面:"&Request.ServerVariables("URL")&"<br>" 
Response.Write "提交方式:GET<br>" 
Response.Write "提交参数:"&flashack_Get&"<br>" 
Response.Write "提交数据:"&Request.QueryString(flashack_Get) 
Response.End 
End If 
Next 
Next 
End If 
%> 

本站提供网站改版,网站漏洞修补,服务器维护等服务。 


方法二

在连接数据库的下方加入代码就可以防止sql注入了:

<%

dim sql_injdata,SQL_inj,SQL_Get,SQL_Data,Sql_Post 

SQL_injdata = "'|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare"

SQL_inj = split(SQL_Injdata,"|")

If Request.QueryString<>"" Then

For Each SQL_Get In Request.QueryString

For SQL_Data=0 To Ubound(SQL_inj)

if instr(Request.QueryString(SQL_Get),Sql_Inj(Sql_DATA))>0 Then

Response.Write "<Script Language=javascript>alert('注意:请不要提交非法请!');history.back(-1)</Script>"

Response.end

end if

next

Next

End If

If Request.Form<>"" Then

For Each Sql_Post In Request.Form

For SQL_Data=0 To Ubound(SQL_inj)

if instr(Request.Form(Sql_Post),Sql_Inj(Sql_DATA))>0 Then

Response.Write "<Script Language=javascript>alert('注意:请不要提交非法请!');history.back(-1)</Script>"

Response.end

end if

next

next

end if 

%>



方法三---通用性代码


<%

dim sql_injdata 

SQL_injdata = "'|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare" 

SQL_inj = split(SQL_Injdata,"|") 

If Request.QueryString<>"" Then 

 For Each SQL_Get In Request.QueryString 

  For SQL_Data=0 To Ubound(SQL_inj) 

   if instr(Request.QueryString(SQL_Get),Sql_Inj(Sql_DATA))>0 Then 

    Response.Write "<Script Language=****>alert('SQL通用防注入系统提示↓nn请不要在参数中包含非法字符尝试注入!');history.back(-1)</Script>" 

    Response.end 

   end if 

  next 

 Next 

End If 


  这样我们就实现了get请求的注入的拦截,但是我们还要过滤post请求,所以我们还得继续考虑request.form,这个也是以数组形式存在的,我们只需要再进一次循环判断即可。代码如下:


If Request.Form<>"" Then 

 For Each Sql_Post In Request.Form 

  For SQL_Data=0 To Ubound(SQL_inj) 

   if instr(Request.Form(Sql_Post),Sql_Inj(Sql_DATA))>0 Then 

    Response.Write "<Script Language=****>alert('SQL通用防注入系统提示↓nn请不要在参数中包含非法字符尝试注入!nnHTTP://www.521movie.com ');history.back(-1)</Script>" 

    Response.end 

   end if 

  next 

 next 

end if 

 %>