基于SQL注入Web应用程序安全性研究.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于SQL注入Web应用程序安全性研究

基于SQL注入Web应用程序安全性研究   【 摘 要 】 SQL注入是对Web应用程序造成威胁非常流行的一种攻击方法,本文从SQL注入的原理技术进行分析,介绍如何从多个角度防止SQL注入,更好的维护Web应用程序的安全。   【 关键词 】 SQL注入;安全;研究   On the Security of Web Applications Based on SQL Injection   Lei Yan-rui   (Hainan College of Software Technology HainanQionghai 571400)   【 Abstract 】 SQL injection is a common form of attack that poses threats against Web applications. In this paper, we analyze the technical principles of SQL injection, and present several approaches to avoiding the attack and keeping Web applications safe.   【 Keywords 】 sql injection; security; research   1 引言   随着互联网的普及应用,Web应用系统广泛应用到各个领域。但由于Web应用系统的功能丰富、便于传播、通用性强等特点,导致它容易为网络黑客所攻击。1998年第一次有人发现SQL注入,此后研究人员开始注意SQL注入的危险性,而且之后SQL注入进行攻击的事件愈演愈烈。   近几年发生几起SQL注入比较有名的事件,2009年12月,黑客利用SQL注入漏洞攻击RockYou数据库获取用户密码信息;2010年9月,瑞典选民在选举阶段内通过SQL注入攻击选举;2011年,黑客利用SQL注入漏洞从诺基亚网站盗取用户信息;2012年,MMORPG游戏网站被黑客SQL注入攻击。越来越多利用SQL注入攻击非法获取经济利益,任何网站或应用中的一个SQL注入漏洞都很有可能受到黑客的攻击。   2 SQL注入技术分析   SQL是访问数据库服务器的标准语言,几乎所有的Web应用都需要与数据库打交道,势必用到SQL语言。SQL的典型操作“查询”可以获取数据库的“查询结果记录集”,并且SQL语句可以对数据库的结构或数据进行操作和修改,如果攻击者利用SQL语句进入Web应用程序的数据查询,SQL注入攻击就有可能发生。   当Web应用程序的开发人员对cookie或用户输入的参数等数据不进行过滤或验证就直接传递值给SQL查询语句时,SQL注入漏洞就开始存在了。   (1) SQL注入漏洞原因   一条典型的SQL语句:   statement := SELECT* FROM users WHERE name = + uName + ;   这段代码的目的是将某个特定用户??用户表中取出,但如果用户名被恶意用户用特定方式伪造,这条语句的执行操作就完全违反了作者的期望。比如,将用户名这个变量(uName)输入为:   u or a=a   这样写的目的是,name=uName的要求 就变成了name=u?or?a=a,单引号刚好闭合,此时原始语句变为:   SELECT * FROM users WHERE name = u or a=a;   此代码被用于认证过程的话,如上输入能够强迫选择合法的用户名,因为赋值 a=a永远为真。   如此的SQL注入除了可以获取正确的用户通过外,还可以利用这一点删除表、或者获取表中所有的数据等。   (2)SQL注入的危害   攻击者可以利用SQL注入任意增、删、改或查数据库中的数据,获取数据库中存放的个人密码、消费记录等敏感信息;可以通过这种方法获得管理员的权限操作数据库;如果攻击者利用SQI注入执行一些系统的命令的话,他们可以获得整个系统的控制权,后果可想而知。   3 SQL注入的安全防范   (1)参数化方法   参数化方法是指在数据提交的地方不直接进行赋值,而利用参数来进行值传递。使用参数化方法,在DBMS对SQL语句完成编译后,才载入参数运行语句。即便参数的传递中含有指令,也不会被运行。   使用参数化查询技术,数据库服务器不会将参数的内容视为SQL 指令的一个组成部分来处理,在数据库系统完成对SQL 指令的编译后,再载入参数运行. 因此,即使参数中含有指令,也不会被DBMS编译运行。示例1:   ……   sql.CommandText = select * from users where una

文档评论(0)

erterye + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档