<%
'***********************************
'谨以此版本献给我深爱的和深爱着我的人--彦！
'***********************************
'--------版权说明------------------
'SQL通用防注入程序 V3.1 β
'2.0强化版，对代码做了一点优化，加入自动封注入者Ip的功能！^_^
'3.0版，加入后台登陆查看注入记录功能，方便网站管理员查看非法记录，以及删除以前的记录，是否对入侵者Ip解除封锁！
'3.1 β版，加入对cookie部分的过滤，加入了对用js书写的asp程序的支持！
'3.1最终纪念版
'   * 对于3.1beta版中由于加入的对于js程序过滤的功能而引起的安全问题做了修正。
'   * 对于3.1beta版可能引起的跨站攻击做了修正。
'   * 将3.1beta版中的安全表单升级为安全页面，使程序的针对性更强，下面将做演示！
'   * 如无大的问题，此版本为最终纪念版，以后本人将不再对此程序做更新！
'Neeao站点：http://www.neeao.com 
'Mail:neeaocn[AT]Gamil.com
'***********************************
'简化修改：老邓 2010-10-15

'--------配置信息-------------

' 需要过滤的字符
N_In = "'|;|and|exec|insert|select|delete|update|count|chr|mid|master|truncate|char|declare"

' 提示信息
alert_info = "请不要做坏事哦~！"

' 出错后的处理方式
errTo = 3 '1为提示后返回，2为提示后关闭，3为不处理


'--------下面请不要随改动-------------

N_Inf = split(N_In,"|")
'------------------------------
If Request.Form<>"" Then StopInjection(Request.Form)
If Request.QueryString<>"" Then StopInjection(Request.QueryString)
If Request.Cookies<>"" Then StopInjection(Request.Cookies)
'------------------------------
Function N_Alert(alert_info)
	Dim str ,sri : sri = "<"&"/Script"&">"
	str = "<"&"Script Language=JavaScript"&">"
		select case errTo
		case 1
		str = str & "alert('"&alert_info&"');history.back();" & sri
		case 2
		str = str & "alert('"&alert_info&"');window.opener=null; window.close();" & sri
		case 3
        str = ""
		end select
	response.write  str
End Function 
'------------------------------
Function StopInjection(values)
	For Each N_Get In values
		For N_Xh=0 To Ubound(N_Inf)
			If Instr(LCase(values(N_Get)),N_Inf(N_Xh))<>0 Then
				N_Alert(alert_info)
				'Response.End
			End If
		Next
	Next
End Function 
%>
