<%
function ChkStr(Str)
	if IsNull(Str) then
		ChkStr = ""
		exit function 
	end if
	ChkStr = Replace(Str, "'", "''")
end function

function chktopic(str)
	if str<>"" then
		str=replace(str,"""","")
		str=replace(str,"'","")
		str=replace(str,"“","")
		str=replace(str,chr(10),"")
		str=replace(str,chr(13),"")
		str=replace(str,")"," ）")
		str=replace(str,"(","〈")
	end if
	chktopic=str
end function

	function chksearch(str)
	if IsNull(Str) or str="" then exit function 
		str = Replace(str,"!","")
		str = Replace(str,"]","")
		str = Replace(str,"[","")
		str = Replace(str,")","")
		str = Replace(str,"(","")
		str = Replace(str,"　","")
		str = Replace(str,"-","")
		str = Replace(str,"/","")
		str = Replace(str,"+","")
		str = Replace(str,"=","")
		str = Replace(str,",","")
		str = Replace(str,"'","")
	chksearch=str	
	end function
'非法字符检测函数
function chkfox(char) 
if instr(char,chr(32)) then
Response.Write "<li>非法操作！系统已做记录↓"
response.end 
end if
if instr(char,chr(34)) then
Response.Write "<li>非法操作！系统已做记录↓"
response.end 
end if
end function
'邮件地址合法性检测函数
function IsValidEmail(email)
dim names, name, i, c
IsValidEmail = true
names = Split(email, "@")
if UBound(names) <> 1 then
   IsValidEmail = false
   exit function
end if
for each name in names
   if Len(name) <= 0 then
     IsValidEmail = false
     exit function
   end if
   for i = 1 to Len(name)
     c = Lcase(Mid(name, i, 1))
     if InStr("abcdefghijklmnopqrstuvwxyz_-.", c) <= 0 and not IsNumeric(c) then
       IsValidEmail = false
       exit function
     end if
   next
   if Left(name, 1) = "." or Right(name, 1) = "." then
      IsValidEmail = false
      exit function
   end if
next
if InStr(names(1), ".") <= 0 then
   IsValidEmail = false
   exit function
end if
i = Len(names(1)) - InStrRev(names(1), ".")
if i <> 2 and i <> 3 then
   IsValidEmail = false
   exit function
end if
if InStr(email, "..") > 0 then
   IsValidEmail = false
end if
end function
'中文用户名检测函数
function nothaveChinese(para)
dim str,i,c
nothaveChinese=true
str=cstr(para)
for i = 1 to Len(para)
c=asc(mid(str,i,1))
if c<0 then 
nothaveChinese=false 
exit function
end if
next
end function
%>
<%

'--------数据库连接部分--------------
dim dbkillSql,killSqlconn,connkillSql
dbkillSql="MyData/zhidao5756.mdb" 
On Error Resume Next
Set killSqlconn = Server.CreateObject("ADODB.Connection")
connkillSql="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(dbkillSql)
killSqlconn.Open connkillSql
If Err Then
	err.Clear
	Set killSqlconn = Nothing
	Response.Write "数据库连接出错，请检查。"
	Response.End
End If


'--------定义部份------------------
Dim Fy_Post,Fy_Get,Fy_In,Fy_Inf,Fy_Xh,Fy_db,Fy_dbstr,Kill_IP,WriteSql
'自定义需要过滤的字串,用 "|" 分隔
Fy_In = "exec|insert|select|delete|update|count|chr|mid|master|truncate|char|declare"
Kill_IP=True
WriteSql=True			
'----------------------------------


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
				If WriteSql=True Then
					killSqlconn.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),"'","''")&"')")
					killSqlconn.close
					Set killSqlconn = Nothing
				End If
				Response.Write "<Script Language=JavaScript>alert('SQL防注入系统提示你↓\n\n请不要在参数中包含非法字符尝试注入！');</Script>"
				Response.Write "非法操作！系统做了如下记录↓<br>"
				Response.Write "操作ＩＰ："&Request.ServerVariables("REMOTE_ADDR")&"<br>"
				Response.Write "操作时间："&Now&"<br>"
				Response.Write "操作页面："&Request.ServerVariables("URL")&"<br>"
				Response.Write "提交方式：ＰＯＳＴ<br>"
				Response.Write "提交参数："&Fy_Post&"<br>"
				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
				If WriteSql=True Then
					killSqlconn.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),"'","''")&"')")
				killSqlconn.close
				Set killSqlconn = Nothing
				End If
				Response.Write "<Script Language=JavaScript>alert('SQL防注入系统提示你↓\n\n请不要在参数中包含非法字符尝试注入！');</Script>"
				Response.Write "非法操作！系统做了如下记录↓<br>"
				Response.Write "操作ＩＰ："&Request.ServerVariables("REMOTE_ADDR")&"<br>"
				Response.Write "操作时间："&Now&"<br>"
				Response.Write "操作页面："&Request.ServerVariables("URL")&"<br>"
				Response.Write "提交方式：ＧＥＴ<br>"
				Response.Write "提交参数："&Fy_Get&"<br>"
				Response.Write "提交数据："&Request.QueryString(Fy_Get)
				Response.End
			End If
		Next
	Next
End If

If Kill_IP=True Then
	Dim Sqlin_IP,rsKill_IP,Kill_IPsql
	Sqlin_IP=Request.ServerVariables("REMOTE_ADDR")
	Kill_IPsql="select Sqlin_IP from fox_SqlIn where Sqlin_IP='"&Sqlin_IP&"' and kill_ip=true"
	Set rsKill_IP=killSqlconn.execute(Kill_IPsql)
	If Not(rsKill_IP.eof or rsKill_IP.bof) Then
		Response.write "<Script Language=JavaScript>alert('SQL防注入系统提示你↓\n\n你的Ip已经被本系统自动锁定！\n\n如想访问本站请和中国蓝狐QQ：54083049联系！');</Script>"
	Response.End
	End If
	rsKill_IP.close
	
End If
%>