编写通用的ASP防SQL注入攻击程序

原创 2005年03月02日 11:53:00

开发者网络 > 开发工具 > Web开发 > 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注入攻击。难道不是么?

  相关文章:

  • 在ASP中模拟.NET下的cache技术
  • 巧用缓存提高ASP应用程序的性能
  • 在Repeater控件中创建可隐藏区域
  • ASP中也能解压缩rar文件
  • 利用ASP+XML打造个性化留言本
  •  

  • SQL注入攻击的原理及其防范措施
  • SQL注入不完全思路与防注入程序
  • SQL注入缺陷的使用方法及代码
  • 有孔就入 SQL Injection的深入探讨
  • 保护 SQL Server 数据库的十大绝招
  • 跨站式SQL注入数据库攻击和防范技巧
  • SQL Server应用程序中的高级SQL注入
  • 榨干MS SQL Server 最后一滴血
  • SQL注入天书之ASP注入漏洞全接触
  • 版权声明:本文为博主原创文章,未经博主允许不得转载。

    相关文章推荐

    编写通用的ASP防SQL注入攻击程序 .

    SQL注入被那些菜鸟级别的所谓黑客高手玩出了滋味,发现现在大部分黑客入侵都是基于SQL注入实现的,哎,谁让这个入门容易呢,好了,不说废话了,现在我开始说如果编写通用的SQL防注入程序一般的http请求...

    编写通用的ASP防SQL注入攻击程序

    SQL注入被那些菜鸟级别的所谓黑客高手玩出了滋味,发现现在大部分黑客入侵都是基于SQL注入实现的,哎,谁让这个入门容易呢,好了,不说废话了,现在我开始说如果编写通用的SQL防注入程序一般的http请求...

    ASP.NET网站程序防SQL注入式攻击方法

    ASP.NET网站程序防SQL注入式攻击方法 一、什么是SQL注入式攻击? 所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的S...

    ASP防SQL注入攻击程序

    • 2012-08-19 16:32
    • 729B
    • 下载

    在Global.asax文件里实现通用防SQL注入漏洞程序

    首先,创建一个SQLInjectionHelper类完成恶意代码的检查 代码如下: 1 2 3 4 5 6 7 8 ...

    一种通用防SQL注入漏洞程序(Global.asax方式)

    原理很简单:使用Global.asax中的Application_BeginRequest(object sender, EventArgs e)事件,实现表单或URL提交数据的获取,然后通过SQLI...

    ASP.NET程序防范SQL注入式攻击的方法

    一、什么是SQL注入式攻击?  所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造(或...

    SQL通用防注入系统asp版 插一句话漏洞利用

    今晚群里朋友叫看个站,有sql防注入,绕不过,但是有发现记录wrong的文件sqlin.asp 既然做了记录,再查看了下它的记录文件 于是想着构造个asp一句话写进去,前面...

    通用的asp仿sql注入

    • 2012-02-16 16:31
    • 30KB
    • 下载

    ASP.NET程序如何防止被注入(整站通用)

    目的:对输入的字串长度,范围,格式和类型进行约束. 在开发 ASP.NET 程序时使用请求验证防止注入攻击. 使用 ASP.NET 验证控件进行输入验证. 对不安全的输出编码. 使用命令参数集模式防止...
    内容举报
    返回顶部
    收藏助手
    不良信息举报
    您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
    举报原因:
    原因补充:

    (最多只允许输入30个字)