2007-01-07

通用的asp防注入程序.杜绝SQL注入隐患.提升网站安全

http request有两种:get 和 post .SQL注入通过这两种方式构造SQL表达式来欺骗数据库,以达到非法进入系统的目的。那么我们只要实现http 请求信息过滤就可以判断是是否受到sql注入攻击。从而使系统变得安全起来!
get 方式如下:
===============超级无敌分割线=========================
<%
Dim sql_injdata
SQL_injdata = "'|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare|xp_cmdshell"
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' type='text/javascript'>alert('对不起!您提交的信息中含有非法字符.');</script>")
Response.End()
End If
Next
Next
End If
===============超级无敌分割线=========================

这样我们就实现了get 请求的防注入过滤。那么还有PSOT呢?正如你想到的一样,同样是一个循环
PSOT 方式如下:
===============超级无敌分割线=========================
<%
If Request.Form<>"" Then
For Each SQL_Get In Request.Form
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"" type=""text/javascript"">alert("" 很,十分,严重滴对不起!您提交的信息中含有非法字符!"");</script>")
Response.End()
End If
Next
Next
End If
%>
===============超级无敌分割线=========================
把两种方式写成一个ASP文件,把这个ASP文件include到conn.asp文件中! 哈哈哈~便可放心的开发程序了!
--
I'm a stone. blog: http://freetree.bak.cn http://cscom.bokee.com

1 条评论: