好久没搞ASP了,提个注入问题。

lqflsh 2015-12-07 06:52:00
这是一段通用的ASP防注入,但是经过360网站安全检测http://webscan.360.cn 提示[轻微]SQL注入漏洞。

该怎样解决呢?谢谢。
通用防注入代码如下。
<%
dim sql_injdata
SQL_injdata = "'防and防exec防insert防select防delete防update防count防*防%防chr防mid防master防truncate防char防eclare防+防-防(防)防;防$防@防&防|防<防>防%防\防,防"""
SQL_inj = split(SQL_Injdata,"防")
If Request.QueryString<>"" Then
For Each SQL_Get In Request.QueryString
For SQL_Data=0 To Ubound(SQL_inj)
if instr(Request.QueryString(SQL_Get),Sql_Inj(Sql_DATA))>0 Then
Response.Write "<script language=Javascript>alert('请不要在参数中包含非法字符尝试注入!');history.back(-1)</Script>"
Response.end
end if
next
Next
End If
If Request.Form<>"" Then
For Each Sql_Post In Request.Form
For SQL_Data=0 To Ubound(SQL_inj)
if instr(Request.Form(Sql_Post),Sql_Inj(Sql_DATA))>0 Then
Response.Write "<script language=Javascript>alert('请不要在参数中包含非法字符尝试注入!');history.back(-1)</Script>"
Response.end
end if
next
next
end if
%>
...全文
129 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
a71569768 2015-12-09
  • 打赏
  • 举报
回复
你的防字起不到一点作用,还会增加负担
hookee 2015-12-08
  • 打赏
  • 举报
回复
不要拼接SQL语句就可以防止注入了。 上面的代码完全没有必要用,而且有副作用。 用ADO记录(集)对象以及参数化查询进行数据库操作一般足够了。
Go 旅城通票 2015-12-08
  • 打赏
  • 举报
回复
参数为int的时候用isnumeric判断下

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧