Warning: count(): Parameter must be an array or an object that implements Countable in /www/wwwroot/ainto.org/usr/plugins/TpCache/driver/typecho_mysql.class.php on line 93
ASP 过滤字符 - Ainto

ASP 过滤字符

发表在 开发 共有 0 条评论

一般的http请求不外乎 get 和 post 两种,如果过滤掉所有 post 或者 get 请求中的参数信息中的非法字符,那么也就实现了过滤一些非法数据。

首先定义请求中不能包含如下字符:

'|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare

各个字符用"|"隔开,然后再判断Request.QueryString,具体代码如下:

GET请求的非法字符过滤:

SQL_injdata = "'|and|exec|insert|select|delete|update|count|*|%|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

POST请求的非法字符过滤:

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

然后在使用的时候将这代码Include进来即可

评论已关闭