SQL注入攻击及其防范检测技术的研究.doc
文本预览下载声明
SQL注入攻击及其防范检测技术的研究
(1.武汉大学 软件工程国家重点实验室,湖北 武汉 430000;2.商丘职业技术学院,河南 商丘 476100)
摘要:该文简要介绍了SQL注入攻击的概念和原理,以及SQL注入攻击的特点和实现过程,并在此基础上叙述了如何检测SQL注入攻击,总结了一般的SQL注入攻击的防范方法并且给出一种自动防范模型。
关键词:SQL注入;黑客攻击;自动防范
中图分类号:TP393文献标识码:A文章编号:1009-3044(2009)28-7870-03
Research on SQL injection Attack Detection and Prevention Technology
LIU Shuai1,2
(1.Wuhan University, State Key Laboratory of Software Engineering, Wuhan 430000, China; 2.Shangqiu Vocational and Technical College, Shangqiu 476100, China)
Abstract: This article Briefly introduced the concept and the principle of SQL injection attacks, as well as the characteristics and implementation process, and on this basis is described how to detect SQL injection attacks, Summed up the general to guard against SQL injection attacks and gives way to prevent an automatic model.
Key words: SQL injection; hacker attacks; prevent automatically
SQL注入攻击是黑客对数据库进行攻击的常用手段之一。随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别,所以目前市面的防火墙都不会对SQL注入发出警报,如果管理员没查看IIS日志的习惯,可能被入侵很长时间都不会发觉。但是,SQL注入的手法相当灵活,在注入的时候会碰到很多意外的情况,需要构造巧妙的SQL语句,从而成功获取想要的数据。
1 SQL注入攻击概述
1.1 SQL注入技术定义
SQL注入(SQL Injection)技术在国外最早出现在1999年,我国在2002年后开始大量出现,目前没有对SQL注入技术的标准定义,微软中国技术中心从两个方面进行了描述:
1) 脚本注入式的攻击
2) 恶意用户输入用来影响被执行的SQL脚本
Chris Anley将SQL注入定义为,攻击者通过在查询操作中插入一系列的SQL语句到应用程序中来操作数据。Stephen Kost给出了SQL注入的一个特征,“从一个数据库获得未经授权的访问和直接检索”。利用SQL注入技术来实施网络攻击常称为SQL注入攻击,其本质是利用Web应用程序中所输入的SQL语句的语法处理,针对的是Web应用程序开发者编程过程中未对SQL语句传入的参数做出严格的检查和处理所造成的。习惯上将存在SQL注入点的程序或者网站称为SQL注入漏洞。实际上,SQL注入是存在于有数据库连接的应用程序中的一种漏洞,攻击者通过在应用程序中预先定义好的查询语句结尾加上额外的SQL语句元素,欺骗数据库服务器执行非授权的查询。这类应用程序一般是基于Web的应用程序,它允许用户输入查询条件,并将查询条件嵌入SQL请求语句中,发送到与该应用程序相关联的数据库服务器中去执行。通过构造一些畸形的输入,攻击者能够操作这种请求语句去获取预先未知的结果[1]。
1.2 SQL注入攻击特点
SQL注入攻击是目前网络攻击的主要手段之一,在一定程度上其安全风险高于缓冲区溢出漏洞,目前防火墙不能对SQL注入漏洞进行有效地防范。防火墙为了使合法用户运行网络应用程序访问服务器端数据,必须允许从Internet到Web服务器的正向连接,因此一
显示全部