【毕业论文】SQL注入攻击与防御.docx
《【毕业论文】SQL注入攻击与防御.docx》由会员分享,可在线阅读,更多相关《【毕业论文】SQL注入攻击与防御.docx(31页珍藏版)》请在冰豆网上搜索。
![【毕业论文】SQL注入攻击与防御.docx](https://file1.bdocx.com/fileroot1/2022-10/4/2f42f400-00e4-4984-804c-2ce493c62a84/2f42f400-00e4-4984-804c-2ce493c62a841.gif)
毕业设计
题 目 SQL注入攻击及防范措施研究
学生姓名学 号
系 部
专 业
班 级指导教师
本科毕业设计(论文)诚信承诺书
本人郑重声明:
所呈交的毕业设计(论文)(题目:
SQL注入攻击及防范
措施研究)是本人在导师的指导下独立进行研究所取得的成果。
尽本人所知,
除了毕业设计(论文)中特别加以标注引用的内容外,本毕业设计(论文)不包含任何其他个人或集体已经发表或撰写的成果作品。
作者签名:
年 月 日
(学号):
毕业设计(论文)报告纸
SQL注入攻击及防范措施研究
摘 要
随着网络应用的日益广泛,人们对网络安全的重视程度越来越高。
与此同时,网络攻击也不断变换目标和攻击方法。
现在,针对Web应用系统的攻击已经成为网络安全攻防新焦点。
而在对Web应用系统的所有攻击中,SQL注入成为Web应用系统的严重安全隐患。
通过该类型攻击,攻击者可以非法获得对Web应用程序数据库的无限制的访问权限,进一步得到企业和网络用户的机密信息,如银行账号、交易数据等等,给网络用户和企业造成了巨大的生活困扰和经济损失,这就迫切要求对SQL注入攻击实施全面防御。
本文就是基于此目的,对
SQL注入攻击和防范进行深入研究。
本文首先阐述本课题的研究背景、现状和主要研究内容;接着研究了SQL注入攻击的技术背景和原理;最后,在现有防范方法的基础上提出了一些防范措施。
关键词:
SQL注入,网络安全,编码防范
ii
SQLinjectionattacksandPreventiveMeasures
Abstract
Withanincreasinglyextensiveapplicationofthenetwork,peopleattachmoreandmoreimportancetonetworksecurityAtthesametime,changestakeplaceinthetargetsandmethodsofnetworkattacks.Atpresent,attacksaimedatWebapplicationshavebecomeanewfocusofnetworksecurityattackanddefense.SQLinjectionhasbecomeaserioussecurityriskamongalltheattacksagainstWebapplication.TheSQLinjectionattackallowsanattackertoaccesstheunderlyingdatabaseunrestrictedly,andfurthermore,retrievestheconfidentialinformationofthecorporationandthenetworkuser,suchasbankaccountnumber,transactiondata,etc.SQLinjectioncancausegreatdistressandeconomiclossestoenterprisesandInternetusers,sothereisanurgentrequirementforcomprehensivedefensetoSQLinjectionattacks.Forthisreason,thispaperconductsanin-depthresearchonSQLinjectionanddefense.
Firstly,thepaperelaboratesthebackgroundofthissubject,statusandmainresearchcontents.Secondly,itexploresthetechnicalbackgroundandtheoryoftheSQLinjectionattacks.Finally,thepaperputsforwardanovelpreventionmethodbasedonparsetreeoriginatingfromtheexistingdefensemethod.
KeyWords:
SQLInjection;NetworkSecurity;Codingdefense
目录
摘 要 i
Abstract ii
第一章引言…………………………………………………………………………..…………………....…-1-
1.1课题背景………………………………………………………………………………...-1-
1.2课题研究意义……………………………………………………………...……………-1-
1.3国内外研究现状………………………………………………………………………...-2-
1.4课题研究内容…………………………………………………………………………...-3-第二章SQL语言及SQL注入环境分析..……………………………………………...……………....-4-2.1SQL语言简介……………………………………………………………………………-4-
2.2SQL注入攻击网络背景…………………………………………………………………-4-
2.3SQL注入概述……………………………………………………………………………-5-第三章SQL注入攻击的实现…………………………………………………………………………......-6-3.1SQL注入实现原理………………………………………………………………………-6-
3.2SQL注入攻击流程………………………………………………………………………-7-
3.3SQL注入实践……………………………………………………………………………-9-
3.3.1ASP网页简介……………………………………………………………………-10-
3.3.2注入环境搭建…………………………………………………………………...-10-
3.3.3手工注入示例……………………………………………………………………-11
-
3.3.4工具注入示例…………………………………………………………………...-14-
第四章SQL注入攻击防范措施……………………………………………………………...…………-18-
4.1编码过程的防范……………………………………………………………………….-18-
4.2数据库配置防范……………………………………………………………………….-19-
4.2.1使用安全的账号和密码策略…………………………………………………...-19-
4.2.2使用Windows身份验证模式…………………………………………………-19-
4.2.3管理扩展存储过程……………………………………………………………...-19-
4.3操作系统配置防范…………………………………………………………………….-20-
4.3.1选择安全的文件系统…………………………………………………………...-20-
4.3.2对数据库文件进行权限设置与加密…………………………………………...-20-
4.3.3对应用系统文件进行权限设置与加密………………………………………...-20-
第五章总结与展望……………………………………………………………………………………..…-22-
iv
5.1总结 .-22-
5.2展望…………………………………………………………………………………….-22-
参考文献…………………………………………………………………………………………..…………-23-
致谢………………………………………………………………………………………………………..….-24-
第一章引言
1.1课题背景
当今世界,网络技术与信息技术高速发展,B/S模式具有界面统一,使用简单,易于维护,扩展性好,共享度高等优点,B/S模式越来越多的被应用于程序编写中。
但由于B/S建立在广域网之上,对安全的控制能力较弱,且开发人员的水平和经验参差不齐,相当一部分的程序员在编写代码时没有对用户的输入数据或者是页面中所携带的信息进行必要的合法性判断。
攻击者利用这个机会提交一段数据库查询代码,根据程序返回的结果,就可以获得一些数据库信息。
1.2课题研究意义
SQL注入攻击存在于大多数访问了数据库且带有参数的动态网页中。
SQL注入攻击相当隐秘,表面上看与正常的Web访问没有区别,不易被发现,但是SQL注入攻击潜在的发生概率相对于其他Web攻击要高很多,危害面也更广。
其主要危害包括:
获取系统控制权、未经授权状况下操作数据库的数据、恶意篡改网页内容、私自添加系统账号或数据库使用者账号等。
现在流行的数据库管理系统都有一些工具和功能组件,可以直接与操作系统及网络进行连接。
当攻击者通过SQL注入攻击一个数据库系统,其危害就不只局限于存储在数据库中的数据,攻击者还可以设法获得对DBMS(数据库管理系统)所在的主机进行交互式访问,使其危害从数据库向操作系统、甚至整个网络蔓延。
因此,我们不仅应当将SQL注入攻击看作是一个对存储在数据库上数据的威胁,而应当看作是对整个网络的威胁。
1.3国内外研究现状
国内对SQL注入攻击研究主要包括SQL注入攻击的原理和SQL注入攻击的关键技术。
-25-
国内对SQL注入的检测与防范的研究主要集中于以下几个方面:
(1)提出了各种各样的防范模型,如在客户端和服务器端进行检测的SQL注入攻击检测/防御/备案模型。
(2)在服务端正式处理之前对提交数据进行合法性检查。
(3)屏蔽出错信息,这样攻击者就不能从错误信息中获得关于数据库的信息。
(4)对Web服务器进行安全设置,如去掉Web服务器上默认的一些危险命令。
(5)不用字符串连接建立SQL查询,用存储过程编写代码减少攻击。
(6)对包含敏感信息的数据加密,如在数据库中对密码加密存储等。
国内对于SQL注入漏洞检测的研究还很少,大多数还是停留在攻击工具的层面上,很少将注入工具用于网站安全检测。
国外学者对SQL注入检测与防范研究领域一般分为两大类。
(1)漏洞识别(漏洞检测):
这类防范主要研究识别应用程序中能导致SQL注入攻击的漏洞的位置。
(2)攻击防御:
这类方法可以进一步分为编码机制和防御机制。
编码机制是一个很好实践的防范方法。
SQL注入攻击产生的根本原因在于没有足够的验证机制,因而从编码方面防范攻击有很好的理论基础。
编码机制有四种方法:
第一,对输入类型检测。
如果输入类型是数字型,那么限制其为数字型,这样就可以避免很多攻击,但该类检测机制存在很大局限性。
第二,对输入内容编码。
因为攻击者可以使用变换后的字符作为输入,而数据库将其转换之后作为SQL符号,可以在应用程序中对这些变化后的字符