编写通用的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('请不要在参数中包含非法字符尝试注入');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('请不要在参数中包含非法字符尝试注入');history.back(-1)</Script>"
Response.end
end if
next
next
end if
我们已经实现了get和post请求的信息拦截,你只需要在conn.asp之类的打开数据库文件之前引用这个页面即可。放心的继续开发你的程序,不用再考虑是否还会受到SQL注入攻击。
分享到:
相关推荐
ASP.NET过滤类SqlFilter的目的是防止SQL注入攻击,这是一种常见的网络安全威胁。SQL注入允许恶意用户通过输入特殊构造的参数,使得后台系统执行非预期的SQL命令,从而可能获取敏感数据或破坏数据库。例如,如果一个...
3. **检测和过滤输入**:在`BeginRequest`事件处理程序中,遍历所有请求参数(包括GET和POST),对每个参数值进行SQL注入检查。可以使用正则表达式或其他方法去除或替换可能的SQL关键字。 4. **异常处理**:如果检测...
根据文件内容,本篇论文主要探讨了针对...本篇论文对于网络安全和ASP程序开发人员来说是宝贵的参考资料,不仅概述了SQL注入攻击的原理和方法,也提供了详细的防范措施,有助于提高网站程序的安全性和降低被攻击的风险。
ASP防止SQL注入代码 只要我们在文件中过滤所有post或者get请求中的参数信息中非法字符即可,所以我们实现http 请求信息过滤就可以判断是是否受到SQL注入攻击。
为了应对这种威胁,开发人员会采取各种措施来防止SQL注入攻击,本文将详细分析一段用于ASP(Active Server Pages)环境下的防SQL注入代码。 #### 二、代码解读 ##### 1. 初始化变量与设置 ```vbscript '''''''''...
标题与描述中提到的“通用的ASP仿SQL注入”实际上是指一种防止SQL注入攻击的策略,特别针对使用ASP(Active Server Pages)开发的Web应用程序。SQL注入是一种常见的网络安全漏洞,黑客通过在输入字段中插入恶意SQL...
在 Web 开发中,SQL 注入是一种常见的安全攻击方式,它利用应用程序对用户输入数据处理不当的漏洞,将恶意 SQL 代码插入到查询语句中,进而执行非法操作。为了防止这种攻击,开发人员通常会在接收用户输入数据后进行...
SQL注入是一种常见的攻击方式,通过插入恶意SQL语句来操纵数据库,进而获取敏感信息或破坏数据。 为了防止此类攻击,必须对用户提交的所有参数进行安全检查。这种检查可以通过多种方法实现,例如验证输入是否符合...
POST请求通常用于提交表单数据,但这里省略了POST方式的处理,可能是因为GET请求中的URL参数更容易受到SQL注入的影响。 3. **检查URL参数**: 对于GET请求,可以调用`ValidUrlGetData()`方法,该方法遍历`Request....
//遍历Post参数,隐藏域除外 foreach (string i in this.Request.Form) { if (i == "__VIEWSTATE") continue; this.goErr(this.Request.Form[i].ToString()); } //遍历Get参数。 foreach (string i in ...
5. jQuery插件的开发:文档中论述了开发一款jQuery插件,该插件具有全局函数,能够导入到Web程序中,并在数据提交时进行验证,无论是GET还是POST方法,均可有效地阻止SQL注入攻击。 6. 跨脚本语言的标准化防护:...
总结来说,SQL注入攻击是Web应用安全的重要威胁之一,其防范措施需要从应用程序的设计、开发和部署维护等多个阶段进行综合考虑,以确保数据库系统的安全性和数据的完整性。通过对上述内容的学习和实践,可以有效提高...
本文档详细阐述了基于ASP源代码的SQL注入漏洞原理以及攻击方式,并提出了相应的解决方案。以下是文档中提供的知识点: 1. SQL注入的定义和危害 SQL注入是一种代码注入技术,利用了应用程序对用户输入数据的合法性...
GET方式注入是将恶意SQL语句直接放在URL参数中,而POST方式注入则通常把恶意SQL代码隐藏在表单提交的数据中。攻击者还会使用盲注技术,这种技术下,即使没有返回错误信息,攻击者也能够执行注入攻击。 SQL注入的...
在Web应用程序开发中,SQL注入是一种常见的安全攻击方式,它通过恶意SQL语句的输入来操纵数据库,导致数据泄露或被篡改等问题。因此,对SQL注入的防护成为了一个重要的课题。本文将详细介绍一种在.NET框架下实现的...
【知识点详解】 本文主要探讨了如何绕过护卫神·入侵防护系统的SQL注入防御,提供了多种策略和技巧。护卫神是一款专注于...同时,对服务器日志进行监控,及时发现并响应异常行为,也是防止SQL注入攻击的重要手段。
SQL 注入攻击通常是通过 GET 和 POST 方式来完成的。攻击者可以通过构造恶意 SQL 语句来访问或修改数据库中的敏感信息。 为了防止 SQL 注入攻击,我们可以使用简单的判断语句来过滤掉恶意 SQL 语句。在 ASP 中,...
接着,代码检查了`POST`和`GET`请求中的参数,将它们与预定义的关键词列表进行比较。如果检测到任何匹配项,代码会触发一个警告,向用户显示错误消息,并记录下攻击尝试的详细信息,包括IP地址、时间戳、URL、请求...
此外,文中提到了一些有关SQL注入攻击的关键词,例如ASP、.NET、Microsoft SQL Server、MySQL、Oracle和PostgreSQL。不同的Web开发技术与数据库组合,对SQL注入的抵御能力也不同,需要开发者根据各自的技术栈选择...