编写通用的asp防注入程序 选择自 ph4studio 的 Blog

原创 2005年02月28日 10:56:00
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+excel通用成绩查询系统 v6.8 工资查询物业费水电费查询通用哦

这是个极为简单却非常通用、非常方便的成绩查询系统,通用于几乎所有Excel单二维数据表查询。 只需修改 查询条件和顶部、底部文字(非常简单),即可通用于:1. 成绩查询系统,2. 工资查询系统,3. ...
  • baidu_35388538
  • baidu_35388538
  • 2016年06月22日 10:57
  • 700

使用C语言编写通用shellcode的程序

/*   使用C语言编写通用shellcode的程序   出处:internet   修改:Hume/冷雨飘心   测试:Win2K SP4 Local   */    #incl...
  • TYJJXSJ
  • TYJJXSJ
  • 2015年01月29日 18:11
  • 771

记录——《C Primer Plus (第五版)》第八章编程练习第八题

编写一个程序,显示一个菜单,为您提供加法、减法、乘法或除法的选项。获得您的选择后,该程序请求两个数,然后执行您选择的操作。该程序应该只接受它所提供的菜单选项。它应该使用float类型的数。并且如果用户...
  • zgscsed
  • zgscsed
  • 2015年09月28日 19:31
  • 486

防网站漏洞扫描asp代码,也就是防注入的通用代码

把下面的代码保存在公用文件里就可以防止注入扫描了,比方说conn.asp 里,根据多年开发的经验建议将网站后台和前台分离,后台一个conn.asp 前台一个conn.asp 前台conn.asp加如下...
  • wkj001
  • wkj001
  • 2016年11月09日 14:29
  • 799

编写一个程序解决选择问题

程序包括两个Java文件: 1.主文件:Ex1_1.java package exercise; import util.ConsoleTable; /** * @author Justerd...
  • JusterDu
  • JusterDu
  • 2016年07月28日 10:40
  • 295

编写通用Makefile

近期在看韦东山的数码相框视频,有讲到怎么写一个通用的
  • ymangu
  • ymangu
  • 2014年04月06日 14:37
  • 1279

ASP.NET-常用选择控件

1. ListBox 控件 (1)简介 ListBox控件用于显示一组列表项,用户可以选择一项或多项。如果列表项的总数超出可以显示的项数,则ListBox控件会自动添加滚动条。 (2)属性 I...
  • qq_34874791
  • qq_34874791
  • 2017年06月05日 09:34
  • 132

用flask开发个人博客(1)—— 一个简单的flask程序

1、创建flask程序实例 from flask import Flask app=Flask(__name__) Flask接受一个字符串作为参数,这个参数决定程序的根目录,以便于能找到相对于程序...
  • lzhui1987
  • lzhui1987
  • 2016年09月14日 22:32
  • 3492

ASP_一般处理程序_图片上传

首先创建一个文件,用于存放图片:Upload UploadImg.htm:                 window.onload = function() {             ...
  • u010909858
  • u010909858
  • 2013年11月27日 17:00
  • 1338

ASP采集-ASP采集程序原理

采集程序的主要步骤如下: 一、获取被采集的页面的内容 二、从获取代码中提取所有用的数据 一、获取被采集的页面的内容 我目前所掌握的ASP常用获取被采集的页面的内容方法: ...
  • lishimin1012
  • lishimin1012
  • 2015年12月15日 18:08
  • 907
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:编写通用的asp防注入程序 选择自 ph4studio 的 Blog
举报原因:
原因补充:

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