下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、sql注入【摘要】sql注入具冇危害性大而实施简单的特点,目前已经成为危害网 络信息安全的主要攻击方法之一。本文提出一个用于sql注入检测的语句块摘 要树模型,定义抽象sql语句、语句块和反映应用系统功能的语句块摘要树, 给出该树的生成算法和基于该树的sql注入检测算法,将检测纳入到应用系统 执行的sql语句序列上下文中,提高了检测的准确性,降低了误报率。本论文 目的是讲解如何进行sql注入及注入屮常见的问题,和防范sql注入。【关键词】sql注入;数据库;攻击;sql注入预防所谓sql注入,就是通过把sql命令插入到web表单递交或输入域名或 页而请求的查询字符串,最终达到欺骗服务器执行恶意
2、的sql命令,比如先前 的很多影视网站泄露vip会员密码大多就是通过web表单递交查询字符暴出 的,这类表单特别容易受到sql注入式攻击。sql注入原理sql注入就是通过把sql命令插入到web表单递交或输入域名或页面 请求的查询字符串,最终达到欺骗服务器执行恶意的sql命令。具体来说,它 是利用现有应用程序,将(恶意)的sql命令注入到后台数据库引擎执行的能 力,它可以通过在web表单中输入(恶意)sql语句得到一个存在安全漏洞的 网站上的数据库,而不是按照设计者意图去执行sql句sql注入操作方法根据相关技术原理,sql注入可以分为平台层注入和代码层注入。前者由 不安全的数据库配置或数据库
3、平台的漏洞所致;后者主耍是由于程序员对输入未 进行细致地过滤,从而执行了非法的数据查询。基于此,sql注入的产生原因 通常表现在以下几方而:不当的类型处理;不安全的数据库配置;不合理 的查询集处理;不当的错误处理;转义字符处理不合适;多个提交处理不 当。当应用程序使用输入内容来构造动态sql语句以访问数据库时,会发生sql 注入攻击。如果代码使用存储过程,而这些存储过程作为包含未筛选的用户输入 的字符串来传递,也会发生sql注入。sql注入可能导致攻击者使用应用程序登 陆在数据库屮执行命令。相关的sql注入可以通过测试工具pangolin进行。如 果应用程序使用特权过高的帐户连接到数据库,这种
4、问题会变得很严重。在某些 表单屮,用户输入的内容直接用来构造动态sql命令,或者作为存储过程的输入 参数,这些表单特别容易受到sql注入的攻击。而许多网站程序在编写时,没有 对用户输入的合法性进行判断或者程序屮本身的变量处理不当,使应用程序存在 安全隐患。这样,用户就可以提交一段数据库查询的代码,根据程序返回的结果, 获得一些敏感的信息或者控制整个服务器,于是sql注入就发生了。经验小结根据相关技术原理,sql注入可以分为平台层注入和代码层注入。前者由 不安全的数据库配置或数据库平台的漏洞所致;后者主要是由于程序员对输入未 进行细致地过滤,从而执行了非法的数据查询。基于此,sql注入的产生原因
5、 通常表现在以下几方面:不当的类型处理;不安全的数据库配置;不合理 的查询集处理;不当的错误处理;转义字符处理不合适;多个提交处理不 当。防范方法(1) 普通用户与系统管理员用户的权限要有严格的区分。如果一个普通用户在使用查询语句中嵌入另一个drop table语仙 那么是 否允许执行呢?由于drop语句关系到数据库的基木对象,故要操作这个语句用 户必须有相关的权限。在权限设计中,对于终端用户,即应用软件的使用者,没 有必要给他们数据库对象的建立、删除等权限。那么即使在他们使用sql语句 中带有嵌入式的恶意代码,由于其用户权限的限制,这些代码也将无法被执行。 故应用程序在设计的时候,最好把系统
6、管理员的用户与普通用户区分开來。如此 可以最大限度的减少注入式攻击对数据库带來的危害。(2) 强迫使用参数化语句。如果在编写sql语句的时候,用户输入的变量不是直接嵌入到sql语仏 而是通过参数來传递这个变量的话,那么就可以有效的防治sql注入式攻击。 也就是说,用户的输入绝对不能够直接被嵌入到sql语句中。与此和反,用户 的输入的内容必须进行过滤,或者使用参数化的语句來传递用户输入的变量。参 数化的语句使用参数而不是将用户输入变量嵌入到sql语旬中。采用这种措施, 可以杜绝大部分的sql注入式攻击。不过可惜的是,现在支持参数化语句的数 据库引擎并不多。不过数据库工程师在开发产品的时候要尽量采
7、用参数化语句。(3) 加强对用户输入的验证。总休来说,防治sql注入式攻击可以采用两种方法,一是加强对用户输入 内容的检查与验证;二是强迫使用参数化语句来传递用户输入的内容。在 sqlserver数据库屮,有比较多的用户输入内容验证工具,可以帮助管理员来 对付sql注入式攻击。测试字符串变量的内容,只接受所需的值。拒绝包含二 进制数据、转义序列和注释字符的输入内容。这有助于防止脚本注入,防止某些 缓冲区溢岀攻击。测试用户输入内容的大小和数据类型,强制执行适当的限制与 转换。这即有助于防止有意造成的缓冲区溢出,对于防治注入式攻击有比较明显 的效果。如可以使用存储过程来验证用户的输入。利用存储过程
8、可以实现对用户输入 变量的过滤,如拒绝一些特殊的符号。如以上那个恶意代码中,只要存储过程把 那个分号过滤掉,那么这个恶意代码也就没有用武之地了。在执行sql语句之 前,可以通过数据库的存储过程,来拒绝接纳一些特殊的符号。在不影响数据库 应用的前提下,应该让数据库拒绝包含以下字符的输入。如分号分隔符,它是 sql注入式攻击的主要帮凶。如注释分隔符。注释只有在数据设计的时候用的 到。一般用户的查询语句中没有必要注释的内容,故可以直接把他拒绝掉,通常 情况下这么做不会发生意外损失。把以上这些特殊符号拒绝掉,那么即使在sql 语句中嵌入了恶意代码,他们也将毫无作为。故始终通过测试类型、长度、格式和范围
9、来验证用户输入,过滤用户输入的 内容。这是防止sql注入式攻击的常见并且行z有效的措施。(4) 多多使用sql server数据库自带的安全参数。为了减少注入式攻击对于sql server数据库的不良影响,在sqlserver 数据库专门设计了相对安全的sql参数。在数据库设计过程中,工程师耍尽量 采用这些参数来杜绝恶意的sql注入式攻击。如在sql server数据库小提供了 parameters集合。这个集合提供了类 型检查和长度验证的功能。如果管理员采用了 parameters这个集合的话,则 用户输入的内容将被视为字符值而不是可执行代码。即使用户输入的内容屮含有 可执行代码,则数据库也
10、会过滤掉。因为此时数据库只把它当作普通的字符来处 理。使用parameters集合的另外一个优点是可以强制执行类型和长度检查, 范围以外的值将触发异常。如果用户输入的值不符合指定的类型与长度约束,就 会发生异常,并报告给管理员。如上面这个案例中,如果员工编号定义的数据类 型为字符串型,长度为10个字符。血用户输入的内容虽然也是字符类型的数据, 但是其长度达到了 20个字符。则此时就会引发异常,因为用户输入的内容长度 超过了数据库字段长度的限制。多层环境如何防治sql注入式攻击?在多层应用环境屮,用户输入的所有数据都应该在验证之后才能被允许进入 到可信区域。未通过验证过程的数据应被数据库拒绝,并向上一层返回一个错误 信息。实现多层验证。对无目的的恶意用户采取的预防措施,对坚定的攻击者可 能无效。更好的做法是在用户界面和所有跨信任边界的后续点上验证输入。如在 客户端应用程序屮验证数据可以防止简单的脚本注入。但是,如果下一层认为其 输入已通过验证,则任何可以绕过客户端的恶意用户就可以不受限制地访问系 统。故对于多层应用环境,在防1上注入式攻击的时候,需要各层一起努力,在客 户端与数据库端都要采用相应的措施来防治sql语句的注入式攻击。结束语本文详细地介绍了 sql注入攻击产生的原因,同时介绍了攻击流程细节和一 些常用的攻击方法示例。并
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电话录音机项目运营指导方案
- 为第人创建设计开发和维护网站行业相关项目经营管理报告
- 宠物旅馆服务行业市场调研分析报告
- 姑息治疗行业经营分析报告
- 云出版服务行业市场调研分析报告
- 云无服务器计算行业经营分析报告
- 瓦器市场发展前景分析及供需格局研究预测报告
- 冷链肉类产品行业相关项目经营管理报告
- 在啤酒作坊内供应饮料行业市场调研分析报告
- 吸湿排汗运动衫产品供应链分析
- 12J201平屋面建筑构造图集(完整版)
- 2024-2030年中国航空噪声与振动主动控制系统行业市场发展趋势与前景展望战略研究报告
- 20起典型火灾事故案例合集-2024年消防月专题培训
- 外研版七年级英语上册教学课件Unit-1-Lesson-4-Reading-for-writing
- 大药房《质量管理体系文件》-管理制度
- 人教版(2024)第四单元-汉语拼音《ai-ei-ui》教学课件
- 植皮的护理查房
- 文化行业文化遗产保护与数字化传承方案
- 新人教版六年级语文上册期中考试卷(真题)
- 2024年个人信用报告(个人简版)样本(带水印-可编辑)
- 西方古代建筑史智慧树知到答案章节测试2023年天津大学
评论
0/150
提交评论