<%
dim fy_url,fy_a,fy_x,fy_cs(),fy_cl,fy_ts,fy_zx
‘---定义部份 头------
fy_cl = 1 ‘处理方式:1=提示信息,2=转向页面,3=先提示再转向
fy_zx = "index.asp" ‘出错时转向的页面
‘---定义部份 尾------
on error resume next
fy_url=request.servervariables("query_string")
fy_a=split(fy_url,"&")
redim fy_cs(ubound(fy_a))
on error resume next
for fy_x=0 to ubound(fy_a)
fy_cs(fy_x) = left(fy_a(fy_x),instr(fy_a(fy_x),"=")-1)
next
for fy_x=0 to ubound(fy_cs)
if fy_cs(fy_x)<>"" then
if instr(lcase(request(fy_cs(fy_x))),"‘")<>0 or instr(lcase(request(fy_cs(fy_x))),"select")<>0 or instr(lcase(request(fy_cs(fy_x))),"update")<>0 or instr(lcase(request(fy_cs(fy_x))),"chr")<>0 or instr(lcase(request(fy_cs(fy_x))),"delete%20from")<>0 or instr(lcase(request(fy_cs(fy_x))),";")<>0 or instr(lcase(request(fy_cs(fy_x))),"insert")<>0 or instr(lcase(request(fy_cs(fy_x))),"mid")<>0 or instr(lcase(request(fy_cs(fy_x))),"master.")<>0 then
select case fy_cl
case "1"
response.write "<script language=javascript>alert(‘ 出现错误!参数 "&fy_cs(fy_x)&" 的值中包含非法字符串!nn 请不要在参数中出现:and,select,update,insert,delete,chr 等非法字符!nn我已经设置了不能sql注入,请不要对我进行非法手段!‘);window.close();</script>"
case "2"
response.write "<script language=javascript>location.href=‘"&fy_zx&"‘</script>"
case "3"
response.write "<script language=javascript>alert(‘ 出现错误!参数 "&fy_cs(fy_x)&"的值中包含非法字符串!nn 请不要在参数中出现:,and,select,update,insert,delete,chr 等非法字符!nn设计了门,非法侵入请离开,谢谢!‘);location.href=‘"&fy_zx&"‘;</script>"
end select
response.end
end if
end if
next
%>
以上代码为较多网友所用,从使用的感言来看,效果显著。
dim query_badword,form_badword,err_message,err_web,form_name
‘------定义部份 头----------------------------------------------------------------------
err_message = 1 ‘处理方式:1=提示信息,2=转向页面,3=先提示再转向
err_web = "err.asp" ‘出错时转向的页面
query_badword="‘‖and‖select‖update‖chr‖delete‖%20from‖;‖insert‖mid‖master.‖set‖chr(37)‖="
‘在这部份定义get非法参数,使用"‖"号间隔
form_badword="‘‖%‖&‖*‖#‖@‖=‖select‖and‖set‖delete" ‘在这部份定义post非法参数,使用"‖"号间隔
‘------定义部份 尾-----------------------------------------------------------------------
‘
on error resume next
‘----- 对 get query 值 的过滤.
if request.querystring<>"" then
chk_badword=split(query_badword,"‖")
for each query_form_name in request.querystring
for i=0 to ubound(chk_badword)
if instr(lcase(request.querystring(query_form_name)),chk_badword(i))<>0 then
select case err_message
case "1"
response.write "<script language=javascript>alert(‘传参错误!参数 "&form_name&" 的值中包含非法字符串!nn请不要在参数中出现:and update delete ; insert mid master 等非法字符!‘);window.close();</script>"
case "2"
response.write "<script language=javascript>location.href=‘"&err_web&"‘</script>"
case "3"
response.write "<script language=javascript>alert(‘传参错误!参数 "&form_name&"的值中包含非法字符串!nn请不要在参数中出现:and update delete ; insert mid master 等非法字符!‘);location.href=‘"&err_web&"‘;</script>"
end select
response.end
end if
next
next
end if
‘-----对 post 表 单值的过滤.
if request.form<>"" then
chk_badword=split(form_badword,"‖")
for each form_name in request.form
for i=0 to ubound(chk_badword)
if instr(lcase(request.form(form_name)),chk_badword(i))<>0 then
select case err_message
case "1"
response.write "<script language=javascript>alert(‘出错了!表单 "&form_name&" 的值中包含非法字符串!nn请不要在表单中出现: % & * # ( ) 等非法字符!‘);window.close();</script>"
case "2"
response.write "<script language=javascript>location.href=‘"&err_web&"‘</script>"
case "3"
response.write "<script language=javascript>alert(‘出错了!参数 "&form_name&"的值中包含非法字符串!nn请不要在表单中出现: % & * # ( ) 等非法字符!‘);location.href=‘"&err_web&"‘;</script>"
end select
response.end
end if
next
next
end if
以上是另一种版本。
<%
dim getflag rem(提交方式)
dim errorsql rem(非法字符)
dim requestkey rem(提交数据)
dim fori rem(循环标记)
errorsql = "‘~;~and~(~)~exec~update~count~*~%~chr~mid~master~truncate~char~declare" rem(每个敏感字符或者词语请使用半角 "~" 格开)
errorsql = split(errorsql,"~")
if request.servervariables("request_method")="get" then
getflag=true
else
getflag=false
end if
if getflag then
for each requestkey in request.querystring
for fori=0 to ubound(errorsql)
if instr(lcase(request.querystring(requestkey)),errorsql(fori))<>0 then
response.write "<script>alert(""警告:n请不要做任何尝试"");location.href=""index.asp"";</script>"
response.end
end if
next
next
else
for each requestkey in request.form
for fori=0 to ubound(errorsql)
if instr(lcase(request.form(requestkey)),errorsql(fori))<>0 then
response.write "<script>alert(""警告:n请不要做任何尝试"");location.href=""index.asp"";</script>"
response.end
end if
next
next
end if
%>
1、将上述代码放入conn文件中即可!
2、将上述代码保存为safe.asp,在conn文件中引入也可!
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!