基于AJAX的Web应用原子性违反检测及定位
发布时间:2019-09-18 04:21
【摘要】:Web应用是一种客户端(或用户界面)运行于一个Web浏览器上的软件应用。一个前端Web应用程序包括HTML页面、CSS样式文件以及相关的JavaScript脚本等。AJAX(Asynchronous Javascript And XML)是 Web 应用中异步调用的最普遍、最有效的实现,但异步调用的回调机制在增加客户端处理事务吞吐量的同时,会造成浏览器端和服务器端之间的并发缺陷。Web应用原子性违反是一类特殊的并发缺陷:原子区域被异步事件的回调机制打断的操作。异步事件的触发和回调执行在一个原子区域上的操作应该是连续的,而当这一连续的原子性操作间产生一个异步请求行为,使得当前异步事件和另一个异步事件的回调操作间的顺序变成不确定,最终影响输出结果,并可能造成商品超卖、系统崩溃等严重问题。现有研究通常采用静态分析方法进行Web应用原子性违反检测,具有高覆盖率的优点,但还存在精确度低、不能分析JavaScript动态特性等不足。为此,根据JavaScript的特性和动态分析框架Jalangi,我们实现了一种结合动态分析和约束求解的JavaScript原子性违反检测及定位工具AVChecker(Atomicity Violation Checker的缩写)。AVChecker包括5大模块:动态插桩、原子区域识别、原子性违反检测、事件建模和原子性违反定位,各部分功能如下:(1)动态插桩模块首先通过插桩记录数据流和控制流信息,然后提取Web应用程序中与JavaScript函数相关的一些元素信息,包括XHR对象、对应DOM调用的API、匿名回调函数等。(2)原子区域识别模块主要分析JavaScript函数的调用关系,包括回调函数的调用,然后识别出回调阶段完整的函数执行链,用于识别出三种类型的原子区域:HTML,CSS 和 JavaScript。(3)原子性违反检测模块首先构造活动间事件约束,包括事件间的原子区域约束和事件内的函数约束,然后对约束进行重新编码,再将SMT求解器作为求解工具来检测是否存在原子性违反。(4)事件建模模块主要将收集到的Trace中信息转换为一个完整的事件模型Aevent,包括对XHR对象的建模、DOM元素的识别和提取以及JavaScript 回调函数的处理。(5)原子性违反定位模块实现了细粒度的并发缺陷定位,即首先采用有限状态自动机表达AJAX的周期,并根据动态事件模型Aevent,设计规则将Trace转换成基于Aevent的Trace,再依据检测到的原子性违反结果定位到造成违反的Aevent 事件对 TAP。实验中的网站选自Alexa-top500,我们从中选取了 22个包含稳定原子性违反的网站。实验结果表明:AVChecker可以有效检测出Web应用中基于AJAX的原子性违反,误报率较低(18%);准确率可达到81.96%,好于现有的检测工具EventRacer,并且能检测出更多DOM类型的问题(175个VS94个)。定位实验结果表明我们算法的定位成功率达到84.5%。
【学位授予单位】:南京大学
【学位级别】:硕士
【学位授予年份】:2017
【分类号】:TP393.09
本文编号:2537307
【学位授予单位】:南京大学
【学位级别】:硕士
【学位授予年份】:2017
【分类号】:TP393.09
【相似文献】
相关期刊论文 前8条
1 黄少寅,高传善;合同原子性及ACAP协议的实现[J];计算机研究与发展;2004年04期
2 甘元驹;基于多银行的匿名的电子商务协议[J];计算机工程与应用;2003年29期
3 郭云川,古天龙,董荣胜,蔡国永;Netbill协议原子性的符号模型检验分析[J];计算机工程与应用;2004年02期
4 黄涛;丁晓宁;魏峻;;基于应用语义的网构软件松弛事务模型研究[J];中国科学E辑:信息科学;2006年10期
5 王云飞;刘剑;马越;;基于锁信息的多线程软件原子性错误检测方法[J];计算机应用与软件;2014年06期
6 吴学光;文艳军;王戟;傅秀涛;綦艳霞;顾斌;;多重中断C程序中数据竞争及原子性检测[J];计算机科学与探索;2011年12期
7 席琳;周清雷;;改进的电子商务协议逻辑分析方法[J];计算机工程;2010年13期
8 ;[J];;年期
相关重要报纸文章 前1条
1 上海 陈纯;事务的魅力(上)[N];电脑报;2004年
相关硕士学位论文 前1条
1 王德智;基于AJAX的Web应用原子性违反检测及定位[D];南京大学;2017年
,本文编号:2537307
本文链接:https://www.wllwen.com/guanlilunwen/ydhl/2537307.html