找回密码
 开放注册

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

搜索
查看: 731|回复: 0

防止GET与POST注入

[复制链接]

482

主题

303

回帖

1486

牛毛

二级牛人

学习  !!!

积分
1486
QQ
发表于 2009-8-12 09:03:30 | 显示全部楼层 |阅读模式 来自 河北省沧州市
一般的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" 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请求的非法字符过滤:
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进来即可。
您需要登录后才可以回帖 登录 | 开放注册

本版积分规则

帮助|Archiver|小黑屋|通信管理局专项备案号:[2008]238号|NB5社区 ( 皖ICP备08004151号;皖公网安备34010402700514号 )

GMT+8, 2025-4-28 13:01 , Processed in 0.611290 second(s), 34 queries .

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表