收藏本站
《武汉邮电科学研究院》 2018年
收藏 | 手机打开
二维码
手机客户端打开本文

基于抽象语法树的SQL注入防御研究

王杰  
【摘要】:基于数据库作为存储介质的Web应用程序已经普及到各个领域的业务系统中。由于Web应用程序的开发人员在编码时的一些不规范的操作,导致这些应用程序中存在着潜在的注入风险。潜在的SQL注入漏洞一旦被攻击者发现,对网站系统将会造成巨大的损失。所以在应用程序中构建一个SQL注入攻击防御系统,对非法的用户请求进行拦截,是保障系统免受注入攻击危害的必要措施。由于SQL注入攻击语句本身就是正确的SQL语句,即使系统执行了攻击语句,也不会出现任何异常。本文从SQL语句语法结构上进行分析,通过比较SQL注入攻击与正常SQL语句的结构上的差异来判断用户的输入是否包含攻击载荷。针对SQL注入攻击的检测与防御,本文做了如下工作:(1)SQL语法分析器的实现。SQL语句的精确解析是保证数据库安全的基石。本文通过对SQL语法和词法规则的学习,使用EBNF范式描述SQL语言词法规则和语法规则,最后利用ANTLR自动化构建工具实现了SQL语法分析器。(2)SQL语言抽象语法树的构建。本文首次提出利用抽象语法树来判断SQL注入攻击。抽象语法树是SQL语句的一种形式化表示。相比于具体语法树而言,抽象语法树去除了树中的冗余节点,即对最终判定结果没有影响的节点,所以在树节点的比对过程中拥有更好的性能。本文通过重写树规则完成了抽象语法树的构建。(3)基于抽象语法树判定SQL注入攻击应用逻辑的实现。本文提出了基于AST的hash值的比对方法来判断SQL注入攻击。并基于ANTRL的监听器机制完成了抽象语法树判定SQL注入攻击的应用逻辑。(4)语法分析模块和抽象语法树模块在SQL注入防御系统中的应用。在本文中主要实现了SQL语法分析模块和抽象语法树判决模块,并将这两个模块应用到了SQL注入防御系统中。在最后还对本防御系统进行了漏报率、误报率以及响应时间的测试。实验结果表明本文提出的基于抽象语法树hash值的比对方法,在SQL注入攻击防御上能有较好的效果。
【学位授予单位】:武汉邮电科学研究院
【学位级别】:硕士
【学位授予年份】:2018
【分类号】:TP393.08

【相似文献】
中国期刊全文数据库 前10条
1 杨新宇,丁岳伟,陈志浩;利用语法树和算符优先法构造的自动计算系统[J];上海理工大学学报;2003年03期
2 张超群;毛建兰;方丽菁;;语法树推导种类的求解模型[J];计算机应用;2006年S2期
3 王爱平;国玮玮;李仿华;徐晓艳;;基于语法树的批价优惠研究与设计[J];微型机与应用;2011年19期
4 张幸儿;规范抽象语法与抽象语法树的直接生成[J];计算机学报;1990年12期
5 张玉州;王一宾;江克勤;;抽象语法树在属性计算中的应用[J];安庆师范学院学报(自然科学版);2008年04期
6 张丽萍;刘东升;李彦臣;;基于语法树的程序代码复制检测方法及其评价机制的研究[J];内蒙古大学学报(自然科学版);2010年05期
7 卿桐;;巧用语法树求句型短语[J];电脑知识与技术;2011年35期
8 周必水;李骏;沃钧军;;基于语法树和程序正确性验证研究[J];计算机应用与软件;2007年04期
9 刘楠;韩丽芳;夏坤峰;曲通;;一种改进的基于抽象语法树的软件源代码比对算法[J];信息网络安全;2014年01期
10 于冬琦;彭鑫;赵文耘;;使用抽象语法树和静态分析的克隆代码自动重构方法[J];小型微型计算机系统;2009年09期
中国重要会议论文全文数据库 前1条
1 张朝阳;宁洪;王挺;郭超;;多数据库系统查询计划优化研究[A];2009年研究生学术交流会通信与信息技术论文集[C];2009年
中国硕士学位论文全文数据库 前10条
1 吴冲;基于抽象语法树的重复代码检测[D];上海师范大学;2015年
2 颜世勋;内核源代码差异分析与展示[D];北京理工大学;2015年
3 王立超;基于语法制导定义构造保留格式的反语法分析[D];上海交通大学;2015年
4 严博;Odin Ⅱ系统编译及综合模块的设计与实现[D];东南大学;2017年
5 王杰;基于抽象语法树的SQL注入防御研究[D];武汉邮电科学研究院;2018年
6 李建松;基于抽象语法树的软件抄袭检测算法研究[D];北京邮电大学;2011年
7 王雅丽;安全检证工具中抽象语法树的设计与实现[D];西北农林科技大学;2013年
8 任颜珠;结合文本和抽象语法树比对的源代码同源性鉴别系统的研究与设计[D];北京邮电大学;2011年
9 王丽;C++静态代码检测语法树构建方法研究[D];大连理工大学;2011年
10 姜璐;一种改进的基于抽象语法树的软件演化分析技术研究[D];南京大学;2013年
 快捷付款方式  订购知网充值卡  订购热线  帮助中心
  • 400-819-9993
  • 010-62791813
  • 010-62985026