当前位置:首页 > ASP教程 > 存储过程

大学站防SQL注入代码(ASP版)


方法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)!

相关教程推荐

其他课程推荐