一种基于改进正则表示sql注入过滤模块设计

一种基于改进正则表示sql注入过滤模块设计

ID:5191931

大小:37.50 KB

页数:13页

时间:2017-12-05

一种基于改进正则表示sql注入过滤模块设计_第1页
一种基于改进正则表示sql注入过滤模块设计_第2页
一种基于改进正则表示sql注入过滤模块设计_第3页
一种基于改进正则表示sql注入过滤模块设计_第4页
一种基于改进正则表示sql注入过滤模块设计_第5页
资源描述:

《一种基于改进正则表示sql注入过滤模块设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、一种基于改进正则表示SQL注入过滤模块设计  摘要:SQL注入攻击作为利用应用系统的漏洞,进行Web应用服务攻击的方式之一,具有危害性大且实施简单的特点。该文在对SQL注入点分析的基础上,设计了一种针对不同注入点攻击采用不同的验证方法。对于可由用户编辑的注入点,采用改进正则表达式进行过滤,而对于不能被普通用户编辑的,采用哈希运算消息认证码机制来验证其完整性。实验表明,该设计具有较好的防范SQL注入的效果和较低的运行开销。关键词:SQL注入攻击;注入点;正则表示中图分类号:TP391文献标识码:A文章编号:1009-3044(2013)

2、29-6639-041概述根据信息技术研究和分析企业Gartner公司的调查,目前75%以上的安全攻击都是针对应用的,而不是系统底层和网络。SQL13注入攻击作为利用应用系统的漏洞,进行Web应用服务攻击的主要方式之一,具有危害性大且实施简单的特点。来自应用程序安全测试公司Veracode的最新软件安全状况报告显示,三分之一的应用程序中仍然存在SQL注入漏洞。因此如何降低SQL注入攻击的风险,从根本上实施SQL注入攻击防御,成为当前Web应用安全面临的问题之一。该文从常见的SQL注入攻击和防御方法分析入手,对文献[1]中所提出的基于正

3、则表示的Web服务端SQL注入过滤模块进行改进。通过测试分析,表明该方法是可行的,具有更好的性能和实用性。2SQL注入攻击SQL注入攻击是指攻击者利用Web应用程序中的注入漏洞,通过构造巧妙的SQL语句,和网页提交的内容结合起来向服务器端Web应用程序提交执行,以获取私密信息和非授权权限,进而达到攻击的目的。其攻击主要采用如下几种方式:1)通过非法使用SQL语句攻击,如在注入点非法使用注释符号、存储过程或函数、union语句进行联合查询等攻击;2)通过构造逻辑值为真或假的表达式进行攻击,如恒等式攻击(1=1),或在动态查询语句中构造逻

4、辑值为假的表达式,然后利用服务器返回的错误信息推测相关数据库信息等;3)使用SQL注入扫描工具攻击,如BSQLhacker、Safe3SQLInjector等自动注入攻击软件。目前防御SQL注入攻击的方法主要有以下几种:131)基于监测SQL语句逻辑结构是否被更改的方法。即通过对互联网应用程序的源码进行分析,定位存在的SQL注入漏洞,并在运行时实时监控SQL注入漏洞是否触发来防御,如AMENSIA[2]和SQLGuard方法[3]。这种方法针对SQL语句的逻辑结构是否被更改这一本质特征进行防御,检测效果较好,但是实现起来适用性不强,且

5、性能较差。2)基于随机化编码的方法[4]。此种方法是对程序源代码中包含动态SQL语句的关键词进行随机化编码,运行时再对编码后的SQL语句进行解码,如果解码失败则表明受到了攻击。这种方法的缺陷是需要修改源码,另外部署较为复杂。3)基于污点跟踪技术的方法[5-6]。该方法是在程序运行时把外部不可信输入标记为一个污染数据,然后在程序执行过程中跟踪汅点数据的传播流向,以判断它是否会引发SQL注入攻击。其缺陷是在高度模块化的Web应用程序中实现上述过程比较困难。4)基于数据过滤的方法[7]。该方法主要是通过对常见的SQL注入攻击分析,提炼攻击特

6、征,然后在客户端与web服务器之间部署的插件、硬件设备中采用基于特征识别的方式识别并阻断各种攻击,达到防御的目的。如Web应用防火墙、截断过滤器、应用入侵检测系统等。此种方法通用性较强,但对于大量无规律的SQL注入攻击行为检测效果较差,漏报和误报率较高。13文献[1]中对SQL注入攻击特征通过正则表达式进行描述,然后在服务器端以此进行过滤。与通过关键词进行的传统过滤方法相比,攻击识别的正确率较高。但是其只对通过Get和Post方式提交的数据进行验证,并没有对以其它方式进行注入的攻击进行检验,为此本文对其加以改进,以进一步提高识别的准确

7、率。3改进正则表示的SQL注入过滤模块设计3.1注入点分析无论何种形式的SQL注入攻击,其首要步骤就是判断Web应用程序是否存在SQL注入漏洞,即寻找能够输入恶意参数的位置。在一个存在漏洞的Web应用程序中,通常存以下几种注入位置:1)通过POST和GET方式提交的数据。Post方式提交的数据是指在Form表单中,当表单的method属性为POST时用户输入的数据,该数据作为表单的数据体,放在httpbody中传递给服务器端。Get方式提交的数据是指添加在URL的后面,并作为URL的一部分发送给服务器端的数据,如“http://dom

8、ain-name/page.asp?arg=value”13中“?”后部的数据。如果攻击者在URL地址栏或页面表单各参数域(Text、Radio等域)位置填充精心构造的恶意内容,然后以get或post方式提交,就有可能在

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。