SQL注入攻击及其防范措施研究

SQL注入攻击及其防范措施研究

ID:43984752

大小:27.50 KB

页数:4页

时间:2019-10-17

SQL注入攻击及其防范措施研究_第1页
SQL注入攻击及其防范措施研究_第2页
SQL注入攻击及其防范措施研究_第3页
SQL注入攻击及其防范措施研究_第4页
资源描述:

《SQL注入攻击及其防范措施研究》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、SQL注入攻击及其防范措施研究摘要:SQL注入攻击因为易学而且入门的门槛较低也很难被系统发现,使得很多人都能够掌握SQL注入攻击的方法,也因此使得其危害十分严重。文中主要对SQL注入攻击的原理进行了简单的分析,并就SQL注入攻击的分类进行了简单的阐述。文中最后对SQL注入攻击的防范提出了几点建议。Abstract:SQLinjectionattackiseasytolearn,anditslowthreadmakesitbedifficulttodiscoveredbysystem.Somanype

2、oplecangraspSQLinjectionattackmethod,andthereforeitisseriouslyharmful.ThispapermainlyanalyzesitsprincipleofSQLinjectionattack,andpresentstheclassificationofSQLinjectionattack・Atlast,itgivessomesuggestionsonpreventingSQLinjectionattack.关键词:SQL注入攻击;数据库;防

3、范措施Keywords:SQLinjectionattack;database;preventivemeasures中图分类号:TP392文献标识码:A文章编号:1006-4311(2012)21-0191-030引言SQL注入就是SQLInjection,指的是当用户提交一段数据库查询代码时,能够根据所返回的结果获取一些他想要得知的不应该被其获取的数据。SQL注入攻击是黑客攻击数据库时常采用的一种攻击手段,并且相对简单、容易掌握,使得这种攻击手段被越来越多的人所掌握。随着B/S模式的广泛应用,利用

4、SQL数据库的程序员越来越多,但是因为程序员自身的水平经验的限制以及一些不经意的问题,使得一部分程序员没有考虑到用户所输入的数据的合法性,进而使得程序存在着各种各样原本可以避免的安全隐患。特别是ASP的推广,使得很多人不需要多么专业的编程知识就能够制作出十分漂亮的动态网站,这就容易为SQL注入攻击提供机会。1SQL注入攻击的原理分析SQL注入攻击虽然较为简单,但是其危害性很大,要对SQL注入攻击进行防范就需要掌握其基本原理,才能够更好的制定出防范的措施。在SQL注入攻击中,攻击者会将恶意代码插入到一

5、段字符串中去,然后通过各种手段来将这些字符串传递到数据库的实例中去进行分析和执行。如果这段恶意代码符合了SQL语句的规则,那么就会被数据库所执行并返回相应的结果,而且在编译和执行的过程中不会被系统发现。SQL注入攻击通常都是发生在程序使用所输入的具体内容来构造动态的SQL语句对数据库进行访问的时候。同时如果是在存储过程中没有对用户所输入的字符串进行筛选而直接进行传递也容易发生SQL注入。在SQL注入攻击中,攻击者可能会使用程序登陆到数据库中并执行相关的命令,此时如果应用程序使用了过高的特权账户来连接

6、数据库,那么就可能出现相当严重的问题。在一些表单中,程序会利用用户所输入的内容来直接的构造动态的SQL命令,或者是直接作为存储过程中所使用的产生,这些表单就会成为sql注入的攻击首先对象。在一些动态网站的编写过程中,几乎没有对用户所输入的内容的合法性机械能判断,或者直接是程序本身所采用的变量就不合理,就会让程序存在安全隐患。这就使得一些恶意用户能够通过一段恶意的数据库代码来从数据库中获取一些较为敏感的信息,或者是直接对服务器进行控制。SQL注入从正常的WWW端口进行访问,并且在表面上和一般的Web页

7、面访问不存在任何区别,因此防火墙基本不会对SQL注入进行警报,而且如果管理员没有查看日志信息也不会发现被入侵。这些都使得这种不太先进的攻击手段有很广泛的“市场”。2SQL注入攻击的种类要对SQL注入进行有效防御就必须要了解SQL注入攻击的主要实现途径。2.1没有对转义字符进行正确的过滤如果用户的输入中没有过滤转义字符时,就会出现漏洞发生这种攻击的情况。这种情况为终端用户控制数据库上的语句并进行操纵提供了机会。例如下面的代码:statement:=uSELECT*FROMusersWHEREname=

8、?灰+userName+?灰;“代码的原本目的是将特定的用户从数据库的用户列表中提取出来,但是这行代码却容易被恶意用户进行利用,使得这个语句所执行的操作不是作者所期望的那样。例如如果将用户名变量(userName)设置为,a'orz丁tz,那么原来的语句就变为了:SELECT*FROMusersWHEREname='a'OR';如果将这条改变后的语句用到认证过程中,那么这条语句就会从数据库中强制选择一个合法的用户名,因为语句中的'tz二'i是永远正确的。在很多SQL服

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

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

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