- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
档案管理网站SQL注入攻击与防范
档案管理网站SQL注入攻击与防范
摘 要:本文通过实例分析了SQL注入攻击原理,根据本人平时的工作总结,系统地阐述了如何防范SQL注入攻击、SQL 注入攻击检测方法和SQL注入攻击后的补救措施。希望对档案管理网站开发人员和档案管理网站管理人员有一定的启发,提高档案管理网站的安全性。
关键词:SQL;SQL注入;SQL注入攻击;数据库;档案管理网站
随着计算机和网络技术的日益发展,网络化、数字化成为档案管理发展的重要方向,档案管理网站建设成为其中很重要的组成部分。在网站建设过程中,由于网站开发人员的能力和管理经验参差不齐,部分网站开发人员在编写代码的时候,没有对用户输入数据的合法性进行严格判断和过滤,使网站存在不同的安全隐患,容易遭受不同程度的SQL注入攻击[1]。目前档案管理网络安全系统主要以防火墙为主,而防火墙只是对访问对象进行认证,而对于网站本身存在的软件问题,入侵者依然可以在遵守防火墙访问规则的前提下实施攻击,防火墙并不能有效解决SQL注入攻击问题。所以研究档案管理网站的SQL注入攻击与防范措施是摆在档案管理网站开发人员和网站管理人员面前的一个急需探讨的重要课题。
1 SQL注入攻击概述
1.1 SQL注入攻击概念。SQL(Structured Query Language)是一种用来和数据库交互的文本语言,我们也把它叫做结构化查询语言,使用它可以对数据库进行管理。
SQL注入,就是在客户端通过把SQL命令插入到Web 表单递交或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,即通过递交参数构造巧妙的SQL语句,从而成功获取想要的数据[2]。一旦SQL注入成功,就形成了SQL注入攻击,轻则导致重要数据的泄露或篡改,重则导致整个服务器受他人控制,一旦服务器被挂木马或者病毒,就会造成整个服务器瘫痪。
由于档案管理网站要对大量数据进行管理,因此离不开数据库,而目前常用的数据库有Oracle、Sybase、DB2、MS SQL Server 等,这些数据库均是基于SQL 语句的标准数据库,所以SQL注入攻击具有广泛性、技术难度不高、危害性大等特点。
1.2 SQL注入攻击的原理。SQL注入攻击原理就是利用某些数据库的外部接口把??户精心编写的、具有特定含义的数据合理地插入到实际的数据库操作语言当中,从而达到入侵数据库的目的[3]。产生SQL注入攻击的主要原因是程序对用户输入的数据没有进行细致的过滤,导致非法数据的导入。
登录在网站设计中是很重要的一个部分,下面以登录验证中的模块为例,来说明SQL注入攻击的具体实现方法。在Web应用程序的登录验证程序中,一般有用户名(username)和密码(password)两个参数,程序会通过用户所提交输入的用户名和密码来执行相关的授权操作。其原理是通过查找user表中的用户名(username)和密码(password)的结果来进行授权访问,典型的SQL查询语句为:
Select*from users where username=‘admin’and password=‘smith’
如果分别给username和password赋值“‘admin’ or 1=1- - ”和“123”,那么,SQL脚本解释器中的上述语句就会变为:
select*from users where username=‘admin’or 1=1- - and password=‘123’
该语句中“- -”表示注释语句,即“- -”后面所有的内容为注释内容,系统不再执行。Where条件部分由逻辑或运算连接的两个判断条件,只要一个条件成立,整个SQL语句就会成功执行,而1=1在逻辑判断上是恒成立的,所以在该SQL语句中,不管用户名和密码对不对,该语句都可以正常执行。至此,入侵者恶意构造的SQL语句就得到了正确执行,实现一次SQL注入攻击。
同样道理,如果程序没有实施类型强制,通过在输入数据时构造SQL语句,还可以删除数据库中的数据表,造成大量数据丢失。例如:
Update subject Set score=? Where name=‘xiaoming’
如果成绩的值被恶意输入为:99;Drop Table users#
这时该SQL语句就会变成下面的语句:
Update subject Set score=100;Drop Table users #where name=‘xiaoming’
系统一旦执行该语句,其中的SQL语句Drop Table users,就会将“users”表从数据库中删除。
2 如何防范SQL注入攻击
SQL注入攻击防范方法目前已经有很多,总结起来
文档评论(0)