任务书填写要求
1.毕业设计任务书由指导教师根据各课题的具体情况填写,经学生所在学院的负责人审查、负责人签字后生效。此任务书应在毕业设计开始前一周内填好并发给学生;
2.任务书内容必须用黑墨水笔工整书写或按教务处统一设计的电子文档标准格式(可从教务处网页上下载)打印,不得随便涂改或潦草书写,禁止打印在其它纸上后剪贴;
3.任务书内填写的内容,必须和学生毕业设计完成的情况相一致,若有变更,应当经过所在专业及学院领导审批后方可重新填写;
4.任务书内有关“学院”、“专业”等名称的填写,应写中文全称,不能写数字代码。学生的“学号”要写全号(如0201140102,为10位数),不能只写最后2位或1位数字;
5.有关年月日等日期的填写,应当按照国标GB/T 7408—94《数据元和交换格式、信息交换、日期和时间表示法》规定的要求,一律用阿拉伯数字书写。如“2004年3月15日”或“2004-03-15”。
6.红色字体部分和日期不可修改,红色字体打印前变为黑色字体。
7. 封面等内容可由学生填写,但下面具体设计要求等由企业老师完成,不得交给学生完成。任务书大家尽快发给学生。
1.毕业设计课题的任务和要求:
毕业设计课题任务:
通过了解sql注入的基本原理,以及网页内容的扫描方法,完成网站表单sql注入扫描系统的设计和编码。
毕业设计课题要求:
设计禁止抄袭,应独立完成。支持通过web界面发布任务。项目代码要求书写规范,注释清楚,测试无bug。界面要求美观清晰
2.毕业设计环节中的具体工作内容(包括原始数据、技术、工作要求等):
1. 开题报告中参考文献数量不低于10个
2. 毕业设计说明书中参考文献数量不低于15个
3. 不低于3000字的外文翻译(1人1题目)
4. 前期收集相关技术资料,规划好整个毕业设计的进程规划
5. 系统应该保证注入检测的成功率,保证可用性
6. 系统应该实现大量任务的队列执行
7. 系统的界面交互应简洁直观,易于使用
8. 撰写论文和毕业设计作品
9. 论文中必须有设计图(例如:软件截图,架构图,流程图等等)
3.对毕业设计课题成果的要求〔包括毕业设计、图纸、实物样品等):
1. 毕业设计说明书
2. 外文翻译
3. 完整的软件或硬件
4.毕业设计课题工作进度计划:
起 迄 日 期
工 作 内 容
2017年
11月 20 日~12月3日
12月 4 日~12月31日
2018年
1月 4日~1月21日
1月 22日~2月14日
2月22日~3月11日
3月 12日~4月8日
4月9日~4月15日
4月16日~5月13日
5月 14日~6月10日
6月 11日~6月20日
毕业设计选题,师生面谈确定题目任务和要求。
掌握文献查阅方法,通过查阅资料,完成开题报告。
技术可行性分析,完善系统需求分析并确认系统功能。
数据库设计,确定表之间关系并实现相关数据约束。完
成基础数据录入或采集,整理数据关系,绘制E-R图。
完成前台页面设计,实现系统基本功能。
系统设计,编码,单元测试。
完成中期检查报告。
完成所有编码,系统联调,测试,功能修改与完善。
完成设计说明书,外文翻译,准备答辩材料。
毕业设计答辩。
学生所在学院审查意见:
负责人:
2017 年 11 月 30 日
注:起迄日期不能调整,工作内容可以根据设计题目不同进行适当调整。
毕业设计开题报告
班 级:
学 号:
姓 名:
学 院:
专 业:
设 计 题 目:
网站表单sql注入扫描系统
指导教师:
2017年12月 30 日
1.选题依据:
1.1选题的背景与意义
随着计算机网络的发展,Web应用程序得到极为广泛的应用,其自身的安全也面临越来越多的威胁,结构化查询语言(SQL)注入攻击也是目前Web应用程序面临的主要安全威胁之一,因此了解SQL注入攻击与防御对于理解和加强Web应用程序的安全具有十分重要的意义。并且,SQL注入漏洞的危害程度和普遍程度逐年增加,一直是Web安全漏洞的榜首[1]。
SQL注入攻击是黑客对数据库进行攻击的常用手段之一。随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多[2]。但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患,用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入[3]。并且注入攻击在OWASP TOP 10中多年位于第一位,可见其严重性[4]。所以,对于SQL注入漏洞的研究有着非常重要的意义[5]。
SQL注入攻击存在于大多数访问了数据库且带有参数的动态页面中,SQL注入攻击相当隐秘,表面上看与正常的Web访问没有区别,不易被发现,但是SQL注入攻击潜在的发生概率相对于其他Web攻击要高得多,危害面也更广[6]。其主要危害包括:①数据库中的数据外泄,例如个人机密数据,账户数据,密码等。②数据库结构被黑客探知,得以做进一步攻击。③数据库服务器被攻击,系统管理员账号被篡改,例如ALTER LOGIN sa WITH PASSWORD='xxxxxx'。④获取系统较高权限后,有可能得以在网页加入恶意链接、恶意代码以及XSS等。⑤经由数据库服务器提供的操作系统支持,让黑客得以修改或控制操作系统,例如xp_cmdshell "net stop iisadmin"可停止服务器的IIS服务。⑥破坏硬盘数据,瘫痪全系统,例如xp_cmdshell "FORMAT C:"。
现在流行的数据库管理系统都有一些工具和功能组件,可以直接与操作系统及网络进行连接。当攻击者通过SQL注入攻击一个数据库系统,危害就不只局限于操作系统在数据库中的数据,攻击者还可以设法获得对DBMS所有的主机进行交互式访问,使其危害从数据库向操作系统、甚至整个网络蔓延。因此,我不仅应当将SQL注入攻击看作是一个对在数据库上数据的威胁,而应当看作是队整个网络的威胁。
本系统主要针对网站中表单的SQL注入检测,检测表单是否存在SQL注入风险。
1.2国内外研究现状
国内外对SQL注入漏洞都有着长期的研究,国外最早发现SQL注入漏洞,并对该漏洞攻击的检测和防御都有较为深入的研究,但是国内起步较晚,多是根据漏洞原理建立一些防御模型[7]。
国内对SQL注入攻击研究主要包括SQL注入攻击的原理和SQL注入攻击的关键技术。国内对SQL注入的检测与防范主要集中于一下几个方面[8]:
(1)提出各种各样的防范模型,如在客户端和服务器端进行检测的SQL注入攻击检测、防御、备案模型。
(2)在服务器端正式处理之前对提交数据进行合法性检查。
(3)屏蔽错误信息,这样攻击者就不能从错误中获取关于数据库的信息。
(4)对Web服务器进行安全设置,如去掉Web服务其上默认的一些危险命令。
(5)不用字符串连接建立SQL查询,用存储过程编写代码减少攻击。
(6)对包含敏感信息的数据加密,如在数据库中对密码加密存储等。
国内对SQL注入漏洞检测的研究还很少,大多数还停留在攻击工具的层面上,很少将注入工具用于网站安全检测。
国外学者对SQL注入检测与防范领域一般分为两大类。
(1)漏洞识别(检测):这类防范主要研究识别应用程序中能导致SQL注入攻击的漏洞位置。
(2)攻击防御:这类方法可以进一步分为编码机制和防御机制。
编码机制是一种很好实践的防范方法,SQL注入攻击产生的根本原因在于没有足够的验证机制,因而从编码方面防范攻击有很好的理论基础[9]。编码机制有四种方法[10]:第一,对输入类型检测,如果输入类型是数字型,那么限制为数字型,这样就可以避免很多攻击,但该类型检测机制存在很大局限性。第二,对输入内容进行编码。因为攻击者可以使用变换后的字符作为输入,而在数据库中将其还原为正常字符。第三,正模式匹配,通常可以写一段程序用于检测数据输入是否有不合法字符。第四,识别输入源。
防御机制包括:黑盒测试法、静态代码检测器、结合静态和动态的分析方法、新查询开发范例、入侵检测系统、代理过滤、指令集随机化方法、动态检测等方法。
参考文献
[1] 马小婷,胡国平,李舟军.SQL注入漏洞检测与防御技术研究[J].计算机安全,2010(11):18~24
[2]任泰明·基于B/S结构的软件开发技术[M].西安:西安电子科技大学出版社,2006
[3]张涛,吴冲.信息系统安全漏洞研究[J].哈尔滨工业大学学报(社会科学版),2008,10(4):77~82
[4] The Open Web Application Security Project.OWASP Top 10-2017 rcl[J].OWASP Top 10-2017 rcl,2017,5~6
[5]周蓉,徐滔.SQL注入漏洞分析与防范[J].四川职业技术学院学报,2007,17(4):116~117
[6]张勇,李力,薛倩.Web环境下SQL注入攻击的检测与防御[J].现代电子技术,2004(15),3~4
[7]成晓利.Web应用SQL注入漏洞测试系统的研究与实现[D].硕士学士论文.四川:西南交通大学,2013
[8]Justin Clarke·SQL注入攻击与防御[M]·第二版·北京:清华大学出版,2013
[9]张炳帅·Web安全深度剖析[M]·北京:电子工业出版社,2015
[10]吴翰清·白帽子讲Web安全[M]·北京:电子工业出版社,2012
2.设计方案:
2.1设计任务
采用B/S架构完成网站表单sql注入扫描系统,此系统用于检测表单是否存在sql注入的风险,保证注入检测的成功率,实现队列执行。系统提供以下功能:进入Web界面后可以添加需要检测的网站,在添加完成之后,系统开始对目标网站的URL进行扫描,检测网站中的表单是否存在sql注入的风险,完成后输出结果。