网站运营
位置:首页>> 网站运营>> 防止GET和POST方式引起的SQL注入攻击ASP程序

防止GET和POST方式引起的SQL注入攻击ASP程序

 来源:CSDN 发布时间:2007-08-06 12:57:00 

标签:

内容摘要:编写通用的SQL防注入程序一般的http请求不外乎get 和 post,所以只要我们在文件中过滤所有post或者get请求中的参数信息中非法字符即可,所以我们实现http 请求信息过滤就可以判断是是否受到SQL注入攻击。


  IIS传递给asp.dll的get 请求是是以字符串的形式,当传递给Request.QueryString数据后,asp解析器会分析Request.QueryString的信息,,然后根据"&",分出各个数组内的数据所以get的拦截如下:
  首先我们定义请求中不能包含如下字符:

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

 


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

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=****>alert(’asp之家SQL通用防注入系统提示↓nn请不要在参数中包含非法字符尝试注入!’);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=****>alert(’asp之家SQL通用防注入系统提示↓nn请不要在参数中包含非法字符尝试注入!nnHTTP: //www.aspxhome.com ’);history.back(-1)</Script>"
    Response.end
   end if
  next
 next
end if

 


我们已经实现了get和post请求的信息拦截,你只需要在conn.asp之类的打开数据库文件之前引用这个页面即可。放心的继续开发你的程序,不用再考虑是否还会受到SQL注入攻击。

0
投稿

猜你喜欢

  • 对你的数据进行备份是至关重要的,但是如果你不知道如何恢复这些数据,那些备份对你来说根本没有用处。这里是一个用微软系统中心数据保护管理器(DP
  • SMO: (Social Media Optimization)社会化媒体优化一个内容丰富的成熟网站,除了利用搜索引擎SEO带来的流量之外,
  • 大家都知道一般搜索引擎更新友情链接列表的时间是很长的,其实在搜索引擎内部更新友情链接是即时的,为了方便给站长分析外链的构建状态,其实利用Go
  • 大木桥药品网首 页被降权有一段时间了,但我一直没有不知道因为什么被降权,也不知道是首页降权,直到昨天和一些网友讨论网站运营的话题时,经过别人
  • 最近在调研关联数据的一些东西,需要用到rdf数据库,所以接触了virtuoso数据库。安装的坑其实并不多,之前在windows 10上安过一
  • 百度地图推出地图移动版,首个Windows Mobile操作系统客户端于18日隆重上线(http://mo.baidu.com/map/)。
  • 1. kali linux 系统版本查看 命令:cat /etc/issue2. kali linux系统内核信息查看命令:uname -a
  • 再说说人事(人事=有关人的事情,和业务不太相关)。大多数老板都会觉得人才短缺,常常觉的属下的员工专业度不足,不能完全帮自己分忧解难。大多数员
  • 最近探讨flash在客户端的得失,与几位朋友交流时,突然想起,前段时间阿里集团旗下几个公司相继做出在业内反响比较大的几个招聘网站,不约而同都
  • Godaddy主机用户快来创建Google站长管理工具帐户吧,来为你提供一种你在创建你的共享托管账户时就可以用来立即登陆你的网站数据的站长管
  • 无处不在的WEB2.0 正式成为主流,人们通过对XML和RSS等标准格式、面向服务的网络应用程序、用户控制的数据的应用,认识到了英特网真正的
  • 忍痛割爱关掉自己的论坛做了一年的地方论坛,今天亲手关闭了,顺便讲点心得。做地方论坛,每天要忍受着各个方面的压力,我已经不堪重负,虽然做了一年
  • 第一、网页的title,是你每次优化的重点。第二、title,description,keyword你写的越多,得到的就越少。第三、页面头部
  • 圣诞节的脚步可是越来越近了,最近福布斯网站就盘点了一下2008年度最受欢迎的十大圣诞礼物。而夺冠者并不让我们感到意外,那就是任天堂的Wii游
  • 要替换字符串,我们需要使用以下格式。$ sed s/替换的目标字符串/替换后的字符串/ 文件名在下面我们替换写为“appleorangeme
  • 架设FTP服务器,一向是把安全放在首位,特别是利用IIS之类工具建立起来的FTP服务器更是如此。如果设置不当遭受到恶意攻击,那造成整个服务器
  • 决定一个网站成败命运的,不是视觉设计,而是设计的可用性和有效性。访问网页的用户们握着鼠标,决定一切,“以用户为中心&am
  • 今天来介绍Godaddy主机用户怎样使用Microsoft Publisher 2003创建FTP位置,具体步骤如下:首先.从Microso
  • 这篇主要讲解网选取关键字的步骤。网站或网页关键字的确定看似是一件不是很系统的工作,但如果要确实有竞争力的关键字,想通过关键字为网站带来流量,
  • 在这个seo外链为王的时代,应该没多少人注重内链建设了,实际上不管是在百度还是在google,内链建设都非常重要. 本文着重讲述内链.随便列
手机版 网站运营 asp之家 www.aspxhome.com