编写通用的asp防注入程序

编写通用的asp防注入程序     选择自 ph4studio 的 Blog  
关键字   编写通用的asp防注入程序 
出处

sql注入被那些菜鸟级别的所谓黑客高手玩出了滋味,,发现现在大部分黑客入侵都是基于sql注入实现的 
,哎,,谁让这个入门容易呢,好了,,不说废话了,,现在我开始说如果编写通用的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('天下电影联盟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('天下电影联盟SQL通用防注入系统提示↓nn请不要在参数中包含非法字符尝试注入!nnHTTP://www.521movie.com ');history.back(-1)</Script>" 
Response.end 
end if 
next 
next 
end if 
好了大功告成,,我们已经实现了get和post请求的信息拦截,,你只需要在conn.asp之类的打开数据库文件之前引用这个页面即可。放心的继续开发你的程序,,不用再考虑是否还会受到sql注入攻击。难道不是么?

(0)

相关推荐

  • 编写通用的asp防注入程序

    编写通用的asp防注入程序     选择自 ph4studio 的 Blog   关键字   编写通用的asp防注入程序  出处 sql注入被那些菜鸟级别的所谓黑客高手玩出了滋味,,发现现在大部分黑客入侵都是基于sql注入实现的  ,哎,,谁让这个入门容易呢,好了,,不说废话了,,现在我开始说如果编写通用的sql防注入程序  一般的http请求不外乎 get 和 post,所以只要我们在文件中过滤所有post或者get请求中的参数信息中  非法字符即可,所以我们实现http 请求信息过滤就可以判

  • Aspx/Asp.net 防注入程序 V1.0

    虽然说ASP.NET属于安全性高的脚本语言,但是也经常看到ASP.NET网站由于过滤不严造成注射.由于ASP.NET基本上配合MMSQL数据库架设 如果权限过大的话很容易被攻击. 再者在网络上找不到好的ASP.NET防注射脚本,所以就自己写了个. 在这里共享出来旨在让程序员免除SQL注入的困扰. 我写了两个版本,VB.NET和C#版本方便不同程序间使用. 描述: 1. XP + IIS5.1 + Access + MSSQL2000 下测试通过. 2. 由于考虑到ASPX大多数和MSSQL数据库

  • php通用防注入程序 推荐

    复制代码 代码如下: function jk1986_checksql() { $bad_str = "and|select|update|'|delete|insert|*"; $bad_Array = explode("|",$bad_str); /** 过滤Get参数 **/ foreach ($bad_Array as $bad_a) { foreach ($_GET as $g) { if (substr_count(strtolower($g),$bad

  • 一段asp防注入的通用脚本

    放在conn.asp里就行了. '屏蔽通过地址栏攻击  url=Request.ServerVariables("QUERY_STRING")  if instr(url,";")>=1 then  url=Replace(url,";",":") : Response.Redirect("?" & url)  end if  '屏蔽通过表单攻击  for each item in reque

  • 万能Asp防注入代码 拒绝攻击

    这几天着实为sql注入漏洞伤了神,网上的代码好多不是很深奥就是麻烦.终于找到了万能防注代码,分享了,呵呵 .操作简单上手,只要来个包含或放入conn.asp中,搞定.末了,估计还有一些危险字符没有放全,帮我补全一下,谢谢了! <%  ''''--------定义部份------------------  Dim Fy_Post,Fy_Get,Fy_In,Fy_Inf,Fy_Xh,Fy_db,Fy_dbstr  ''''自定义需要过滤的字串,用 "防" 分隔  Fy_In = &q

  • 比较好用的PHP防注入漏洞过滤函数代码

    复制代码 代码如下: <?PHP //PHP整站防注入程序,需要在公共文件中require_once本文件 //判断magic_quotes_gpc状态 if (@get_magic_quotes_gpc ()) { $_GET = sec ( $_GET ); $_POST = sec ( $_POST ); $_COOKIE = sec ( $_COOKIE ); $_FILES = sec ( $_FILES ); } $_SERVER = sec ( $_SERVER ); functi

  • 整理php防注入和XSS攻击通用过滤

    对网站发动XSS攻击的方式有很多种,仅仅使用php的一些内置过滤函数是对付不了的,即使你将filter_var,mysql_real_escape_string,htmlentities,htmlspecialchars,strip_tags这些函数都使用上了也不一定能保证绝对的安全. 那么如何预防 XSS 注入?主要还是需要在用户数据过滤方面得考虑周全,在这里不完全总结下几个 Tips 1. 假定所有的用户输入数据都是"邪恶"的 2. 弱类型的脚本语言必须保证类型和期望的一致 3.

  • PDO防注入原理分析以及使用PDO的注意事项总结

    本文详细讲述了PDO防注入原理分析以及使用PDO的注意事项,分享给大家供大家参考.具体分析如下: 我们都知道,只要合理正确使用PDO,可以基本上防止SQL注入的产生,本文主要回答以下两个问题: 为什么要使用PDO而不是mysql_connect? 为何PDO能防注入? 使用PDO防注入的时候应该特别注意什么?   一.为何要优先使用PDO? PHP手册上说得很清楚: Prepared statements and stored procedures Many of the more mature

  • PDO防注入原理分析以及注意事项

    我们都知道,只要合理正确使用PDO,可以基本上防止SQL注入的产生,本文主要回答以下两个问题: 为什么要使用PDO而不是mysql_connect? 为何PDO能防注入? 使用PDO防注入的时候应该特别注意什么? 一.为何要优先使用PDO? PHP手册上说得很清楚: 复制代码 代码如下: Prepared statements and stored procedures Many of the more mature databases support the concept of prepar

  • 详解Mybatis框架SQL防注入指南

    前言 SQL注入漏洞作为WEB安全的最常见的漏洞之一,在java中随着预编译与各种ORM框架的使用,注入问题也越来越少.新手代码审计者往往对Java Web应用的多个框架组合而心生畏惧,不知如何下手,希望通过Mybatis框架使用不当导致的SQL注入问题为例,能够抛砖引玉给新手一些思路. 一.Mybatis的SQL注入 Mybatis的SQL语句可以基于注解的方式写在类方法上面,更多的是以xml的方式写到xml文件.Mybatis中SQL语句需要我们自己手动编写或者用generator自动生成.

随机推荐