方法1: replace过滤字符
解决方法:查找login.asp下的<from找到下边的类似username=request.form(”name”)
pass=request.form(”pass”)
修改为:username=replace(request.form(”name”), “’”, “’’”)
pass=replace(request.form(”pass”), “’”, “’’”)
语法是屏蔽’和’’字符来达到效果.
方法2:在conn.asp 内引入safe.asp文件
注意:前提是登陆页面有引入conn.asp文件
把以下代码保存为safe.asp
程序代码
<%
dim query_badword,form_badword,i,err_message,err_web,name
err_message = 3
err_web = “safe.htm”
’出错时转向的页面
query_badword=”’|and|select|update|chr|delete|%20from|;|insert|mid|master.|set|chr(37)|=”
’在这部份定义get非法参数,使用”|”号间隔
form_badword=”’|(|)|;|=”
’在这部份定义post非法参数,使用”|”号间隔
on error resume next
if request.querystring”" then
chk_badword=split(query_badword,”|”)
for each query_name in request.querystring
for i=0 to ubound(chk_badword)
if instr(lcase(request.querystring(query_name)),chk_badword(i))0 then
select case err_message
case “1″
response.write “alert(’传参错误!参数 “&name&” 的值中包含非法字符串! 请不要在参数中出现:and update delete ; insert mid master 等非法字符!’);window.close();”
case “2″
response.write “location.href=’”&err_web&”’”
case “3″
response.write “alert(’传参错误!参数 “&name&”的值中包含非法字符串! 请不要在参数中出现:and update delete ; insert mid master 等非法字符!’);location.href=’”&err_web&”’;”
end select
response.end
end if
next
next
end if
if request.form”" then
chk_badword=split(form_badword,”|”)
for each name in request.form
for i=0 to ubound(chk_badword)
if instr(lcase(request.form(name)),chk_badword(i))0 then
select case err_message
case “1″
response.write “alert(’出错了!表单 “&name&” 的值中包含非法字符串! 你的非法操作已记录,请马上停止非法行为!’);window.close();”
case “2″
response.write “location.href=’”&err_web&”’”
case “3″
response.write “alert(’出错了!参数 “&name&”的值中包含非法字符串! 谢谢您光临!,请停止非法行为!’);location.href=’”&err_web&”’;”
end select
response.end
end if
next
next
end if
%>
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!