防止GET与POST注入

作者:hack1990 时间:10-12-20 阅读数:443人阅读

hi.baidu.com/cncxz
一般的http请求不外乎 get 和 post两种,如果过滤掉所有post或者get请求中的参数信息中的非法字符,
那么也就实现了防SQL注入。 
首先定义请求中不能包含如下字符:
|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare  
各个字符用"|"隔开,然后再判断Request.QueryString,
具体代码如下:get请求的非法字符过滤:
dim sql_injdata SQL_injdata = "|and|exec|insert|select|delete|update|count|*
|%|chr|mid|master|truncate|char|declare"
QL_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请求的非法字符过滤: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  然后在使用的时候将这两段代码放在数据库连接的文件里一起Include进来即可。
 

发表评论