SQL注入被那些菜鸟级别的所谓黑客高手玩出了滋味,发现现在大部分黑客入侵都是基于SQL注入实现的。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防SQL注入攻击程序相关推荐

  1. .NET防SQL注入方法

      SQL语句 利用SqlCommand传参数的方法: string strSQL="SELECT * FROM [user] WHERE user_id=@id"; SqlCom ...

  2. C# 检查字符串,防SQL注入攻击(转载)

    这些天,CSDN上讨论SQL注入攻击似乎是如火如荼啊...我也来参合一下..如下,CheckParams函数,接收参数任意,如参数中有字符串,则对字符串进行检查,如参数中有集合(如Array之类,总之 ...

  3. 防SQL注入(转载)

    这些天,CSDN上讨论SQL注入攻击似乎是如火如荼啊...我也来参合一下..如下,CheckParams函数,接收参数任意,如参数中有字符 串,则对字符串进行检查,如参数中有集合(如Array之类,总 ...

  4. php mysql 防 sql注入_php 防sql注入方法

    php防sql注入的方法:1.使用mysql_real_escape_string方法转义SQL语句中使用的字符串中的特殊字符:2.打开magic_quotes_gpc来防止SQL注入:3.通过自定义 ...

  5. 防sql注入Replace区分大小写

    以下针对c#.net 首先添加引用Microsoft.VisualBasic.Dll 引入命名空间using Microsoft.VisualBasic; 使用Replace方法,以下为参数: Str ...

  6. mysql存储过程不常用_Python--day46--mysql存储过程(不常用)(包含防sql注入)

    一.存储过程: 优点:只要传很少的数据到数据库就可以了  缺点:dba管理数据库的时候可能会对数据库进行了更改了那一坨sql语句. 二.创建存储过程: 1.简单 创建存储过程: Python中使用结果 ...

  7. PHP防SQL注入不要再用addslashes和mysql_real_escape_string

    PHP防SQL注入不要再用addslashes和mysql_real_escape_string了,有需要的朋友可以参考下. 博主热衷各种互联网技术,常啰嗦,时常伴有强迫症,常更新,觉得文章对你有帮助 ...

  8. 防sql注入 php代码,完美的php防sql注入代码

    一款比较完美的php防sql注入代码,很多初学者都有被sql注入的经验吧,今天我们来分享你一款比较完整的sql防注入代码,有需要的同学可以参考一下: /************************ ...

  9. tp5防止sql注入mysql_TP5框架 《防sql注入、防xss攻击》

    版权声明:本文为博主原创文章,转载请注明原文出处! https://blog.csdn.net/qq_23375733/article/details/86606630 如题:tp5怎么防sql注入 ...

最新文章

  1. cProfile——Python性能分析工具
  2. 【数字信号处理】离散时间系统因果性 ( 因果性概念 | 充要条件及证明 )
  3. 在 iOS 应用中直接跳转到 AppStore 的方法
  4. 2020-11-8(activity状态以及任务栈)
  5. 从云计算到大数据华胜天成的国际化之路
  6. Delphi 与 DirectX 之 DelphiX(6): 让 TDXImageList 和常规 VCL 交互使用
  7. Intellij IDEA 4种配置热部署的方法【转】【补】
  8. java 中如何实现多进程_在Java中可以使用哪些方法来实现Java的多进程运行模式?...
  9. linux shm_open,c – 如何更改shm_open路径?
  10. android开发EditText输入时弹出数字输入键盘
  11. 解决git push远程分支错误
  12. Python刚刚尝试就遇:SyntaxError: invalid syntax
  13. python批量修改word文档页眉页脚
  14. 网络游戏是怎样登录的?
  15. 开源的跨平台AI模型部署总有一款是你的菜
  16. 交换机的工作原理及配置
  17. 【TP调试】android虚拟按键无振动效果
  18. uip-学习笔记(移植篇)
  19. 两个集合取交集、并集、差集
  20. android 修改 dpi_Android屏幕适配重点盘点

热门文章

  1. Spring【依赖注入】就是这么简单
  2. Java线程与并发编程实践----同步器(Phaser)
  3. 笑傲江湖,独孤求败-NetScaler MAS应用交付神功详解
  4. js防止客户端多触发
  5. Bad connect ack with firstBadLink 192.168.*.*:50010
  6. 锤子辩论有感——我该如何定义成功
  7. Delphi开发的数据库程序在C:\PDOXUSRS.NET生成文件,拒绝访问及读写权限
  8. python set集合
  9. tensorflwo-gpu win10_64bit 的安装版本问题
  10. iOS证书申请详细流程