<%
dim sql_injdata
SQL_injdata = "'|and|exec|insert|delete|update|*|%|chr|mid|master|truncate|char|declare"
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
'这样我们就实现了get请求的注入的拦截,但是我们还要过滤post请求,所以我们还得继续考虑request.form,这个也是以数组形式存在的,,我们只需要再进一次循环判断即可。代码如下
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
%>
dim sql_injdata
SQL_injdata = "'|and|exec|insert|delete|update|*|%|chr|mid|master|truncate|char|declare"
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
'这样我们就实现了get请求的注入的拦截,但是我们还要过滤post请求,所以我们还得继续考虑request.form,这个也是以数组形式存在的,,我们只需要再进一次循环判断即可。代码如下
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
%>
博客给出代码实现对SQL注入请求的拦截。通过定义包含非法字符的字符串,对Request.QueryString和Request.Form进行循环判断,若参数中包含非法字符,弹出提示并返回上一页,以此实现对get和post请求注入的拦截。
539

被折叠的 条评论
为什么被折叠?



