Dim Hx_SQL,Hx_Url,Hx_Str1,Hx_Str2(),Hx_i,Hx_j,Hx_Deal,Hx_Error,Hx_Mess,Hx_Having,Hx_Save
'-------防止注入代码-----------------------------------------------------------
Hx_SQL = ""
Hx_SQL = Hx_SQL&"'"
Hx_SQL = Hx_SQL&"#@#"
Hx_SQL = Hx_SQL&";"
Hx_SQL = Hx_SQL&"#@#"
Hx_SQL = Hx_SQL&"and"
Hx_SQL = Hx_SQL&"#@#"
Hx_SQL = Hx_SQL&"select"
Hx_SQL = Hx_SQL&"#@#"
Hx_SQL = Hx_SQL&"update"
Hx_SQL = Hx_SQL&"#@#"
Hx_SQL = Hx_SQL&"chr"
Hx_SQL = Hx_SQL&"#@#"
Hx_SQL = Hx_SQL&"delete%20from"
Hx_SQL = Hx_SQL&"#@#"
Hx_SQL = Hx_SQL&"insert"
Hx_SQL = Hx_SQL&"#@#"
Hx_SQL = Hx_SQL&"mid"
Hx_SQL = Hx_SQL&"#@#"
Hx_SQL = Hx_SQL&"master."
Hx_SQL = Hx_SQL&"#@#"
Hx_SQL = Hx_SQL&"alter"
Hx_SQL = Hx_SQL&"#@#"
Hx_SQL = Hx_SQL&"create"
Hx_SQL = Hx_SQL&"#@#"
Hx_SQL = Hx_SQL&"drop"
Hx_SQL = Hx_SQL&"#@#"
Hx_SQL = Hx_SQL&"print"
Hx_SQL = Hx_SQL&"#@#"
Hx_SQL = Hx_SQL&"net user"
Hx_SQL = Hx_SQL&"#@#"
Hx_SQL = Hx_SQL&"xp_cmdshell"
Hx_SQL = Hx_SQL&"#@#"
Hx_SQL = Hx_SQL&"/add"
Hx_SQL = Hx_SQL&"#@#"
Hx_SQL = Hx_SQL&"exec%20master.dbo.xp_cmdshell"
Hx_SQL = Hx_SQL&"#@#"
Hx_SQL = Hx_SQL&"net localgroup administrators"
Hx_SQL = Hx_SQL&"#@#"
Hx_SQL = Hx_SQL&"truncate"
Hx_SQL = Hx_SQL&"#@#"
Hx_SQL = Hx_SQL&"from"
Hx_SQL = Hx_SQL&"#@#"
Hx_SQL = Hx_SQL&"%"
'-----处理方式:
' 1=提示出错信息并关闭窗口
' 2=直接转向出错提示页面
' 3=提示出错信息并转向提示出错页面
' 4=提示出错信息并返回前页
Hx_Deal = 1
'-----是否含有非法代码
Hx_Having = false
'-----是否保存记录
Hx_Save = 1
'-----出错时转向的页面
Hx_Error = "Error.Asp"
'-----开始判断是否含有恶意代码
On Error Resume Next
'-----获取参数
Hx_Url = Request.ServerVariables("QUERY_STRING")
'----分割取值
Hx_Str1=split(Hx_Url,"&")
redim Hx_Str2(ubound(Hx_Str1))
'----取参数名称
for Hx_i=0 to ubound(Hx_Str1)
Hx_Str2(Hx_i) = left(Hx_Str1(Hx_i),instr(Hx_Str1(Hx_i),"=")-1)
Next
'---分割定义的非法代码
Hx_Str3 =Split(Hx_SQL,"#@#")
Hx_Mess =""
case "2"
Hx_Mess = ""
case "3"
Hx_Mess = Hx_Mess & "location.href='"&Fy_Zx&"';"
case "4"
Hx_Mess = Hx_Mess & "history.go(-1);"
End Select
if Hx_Having =True then
if Hx_Save = 1 then call SaveLog()
Response.write Hx_Mess
end if
'保存记录信息
Sub SaveLog()
Remote_IP = Request.ServerVariables("HTTP_X_FORWARDED_FOR")'如果采用代理获取IP
if Remote_IP = "" then Remote_IP = Request.ServerVariables("REMOTE_ADDR")'如果没采用代理获取IP
Remote_Port = Request.ServerVariables("REMOTE_PORT")'获取客户端端口
Remote_Type = Request.ServerVariables("REQUEST_METHOD")'提出请求。相当于用于 HTTP 的 GET、HEAD、POST等 等。
Remote_All = Request.ServerVariables("ALL_HTTP") '客户端发送的所有 HTTP 标题文件。
Server_Url = Request.ServerVariables("SERVER_NAME") & Request.ServerVariables("URL") '访问文件路径
Server_String= Request.ServerVariables("QUERY_STRING") '查询 HTTP 请求中问号(?)后的信息
Server_String= Replace(Server_String,"'","’")
Hx_SQL="Insert into Hx_Logs(Hx_Url,Hx_String,Hx_IP,Hx_Port,Hx_Type,Hx_ClintALL)values('"&Server_Url&"','"&Server_String&"','"&Remote_IP&"','"&Remote_Port&"','"&Remote_Type&"','"&Remote_All&"')"
conn.execute Hx_SQL
end Sub
|
|
| 首页 丨 版权与隐私 丨 广告/合作 丨 代理招商 丨 友情链接 丨 联系方法 |
| 地址: 电话:0951-8318189 |
| 版权所有 © 2003-2008 nxsww.net |
|