sql注入小论文

sql注入小论文

ID:46284870

大小:67.50 KB

页数:4页

时间:2019-11-22

sql注入小论文_第1页
sql注入小论文_第2页
sql注入小论文_第3页
sql注入小论文_第4页
资源描述:

《sql注入小论文》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

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注入操作方法根据相关技

3、术原理,SQL注入可以分为平台层注入和代码层注入。前者由不安全的数据库配置或数据库平台的漏洞所致;后者主耍是由于程序员对输入未进行细致地过滤,从而执行了非法的数据查询。基于此,SQL注入的产生原因通常表现在以下几方而:①不当的类型处理;②不安全的数据库配置;③不合理的查询集处理;④不当的错误处理;⑤转义字符处理不合适;⑥多个提交处理不当。当应用程序使用输入内容来构造动态sql语句以访问数据库时,会发生sql注入攻击。如果代码使用存储过程,而这些存储过程作为包含未筛选的用户输入的字符串来传递,也会发生sql注入。sql注入可能导致攻击者使用应

4、用程序登陆在数据库屮执行命令。相关的SQL注入可以通过测试工具pangolin进行。如果应用程序使用特权过高的帐户连接到数据库,这种问题会变得很严重。在某些表单屮,用户输入的内容直接用来构造动态sql命令,或者作为存储过程的输入参数,这些表单特别容易受到sql注入的攻击。而许多网站程序在编写时,没有对用户输入的合法性进行判断或者程序屮本身的变量处理不当,使应用程序存在安全隐患。这样,用户就可以提交一段数据库查询的代码,根据程序返回的结果,获得一些敏感的信息或者控制整个服务器,于是sql注入就发生了。经验小结根据相关技术原理,SQL注入可以分

5、为平台层注入和代码层注入。前者由不安全的数据库配置或数据库平台的漏洞所致;后者主要是由于程序员对输入未进行细致地过滤,从而执行了非法的数据查询。基于此,SQL注入的产生原因通常表现在以下几方面:①不当的类型处理;②不安全的数据库配置;③不合理的查询集处理;④不当的错误处理;⑤转义字符处理不合适;⑥多个提交处理不当。防范方法(1)普通用户与系统管理员用户的权限要有严格的区分。如果一个普通用户在使用查询语句中嵌入另一个DropTable语仙那么是否允许执行呢?由于Drop语句关系到数据库的基木对象,故要操作这个语句用户必须有相关的权限。在权限设

6、计中,对于终端用户,即应用软件的使用者,没有必要给他们数据库对象的建立、删除等权限。那么即使在他们使用SQL语句中带有嵌入式的恶意代码,由于其用户权限的限制,这些代码也将无法被执行。故应用程序在设计的时候,最好把系统管理员的用户与普通用户区分开來。如此可以最大限度的减少注入式攻击对数据库带來的危害。(2)强迫使用参数化语句。如果在编写SQL语句的时候,用户输入的变量不是直接嵌入到SQL语仏而是通过参数來传递这个变量的话,那么就可以有效的防治SQL注入式攻击。也就是说,用户的输入绝对不能够直接被嵌入到SQL语句中。与此和反,用户的输入的内容必

7、须进行过滤,或者使用参数化的语句來传递用户输入的变量。参数化的语句使用参数而不是将用户输入变量嵌入到SQL语旬中。采用这种措施,可以杜绝大部分的SQL注入式攻击。不过可惜的是,现在支持参数化语句的数据库引擎并不多。不过数据库工程师在开发产品的时候要尽量采用参数化语句。(1)加强对用户输入的验证。总休来说,防治SQL注入式攻击可以采用两种方法,一是加强对用户输入内容的检查与验证;二是强迫使用参数化语句来传递用户输入的内容。在SQLServer数据库屮,有比较多的用户输入内容验证工具,可以帮助管理员来对付SQL注入式攻击。测试字符串变量的内容,

8、只接受所需的值。拒绝包含二进制数据、转义序列和注释字符的输入内容。这有助于防止脚本注入,防止某些缓冲区溢岀攻击。测试用户输入内容的大小和数据类型,强制执行适当的限制与转换。这即有

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

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

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