【摘要】:Web應(yīng)用是一種客戶端(或用戶界面)運(yùn)行于一個(gè)Web瀏覽器上的軟件應(yīng)用。一個(gè)前端Web應(yīng)用程序包括HTML頁面、CSS樣式文件以及相關(guān)的JavaScript腳本等。AJAX(Asynchronous Javascript And XML)是 Web 應(yīng)用中異步調(diào)用的最普遍、最有效的實(shí)現(xiàn),但異步調(diào)用的回調(diào)機(jī)制在增加客戶端處理事務(wù)吞吐量的同時(shí),會(huì)造成瀏覽器端和服務(wù)器端之間的并發(fā)缺陷。Web應(yīng)用原子性違反是一類特殊的并發(fā)缺陷:原子區(qū)域被異步事件的回調(diào)機(jī)制打斷的操作。異步事件的觸發(fā)和回調(diào)執(zhí)行在一個(gè)原子區(qū)域上的操作應(yīng)該是連續(xù)的,而當(dāng)這一連續(xù)的原子性操作間產(chǎn)生一個(gè)異步請求行為,使得當(dāng)前異步事件和另一個(gè)異步事件的回調(diào)操作間的順序變成不確定,最終影響輸出結(jié)果,并可能造成商品超賣、系統(tǒng)崩潰等嚴(yán)重問題,F(xiàn)有研究通常采用靜態(tài)分析方法進(jìn)行Web應(yīng)用原子性違反檢測,具有高覆蓋率的優(yōu)點(diǎn),但還存在精確度低、不能分析JavaScript動(dòng)態(tài)特性等不足。為此,根據(jù)JavaScript的特性和動(dòng)態(tài)分析框架Jalangi,我們實(shí)現(xiàn)了一種結(jié)合動(dòng)態(tài)分析和約束求解的JavaScript原子性違反檢測及定位工具AVChecker(Atomicity Violation Checker的縮寫)。AVChecker包括5大模塊:動(dòng)態(tài)插樁、原子區(qū)域識(shí)別、原子性違反檢測、事件建模和原子性違反定位,各部分功能如下:(1)動(dòng)態(tài)插樁模塊首先通過插樁記錄數(shù)據(jù)流和控制流信息,然后提取Web應(yīng)用程序中與JavaScript函數(shù)相關(guān)的一些元素信息,包括XHR對象、對應(yīng)DOM調(diào)用的API、匿名回調(diào)函數(shù)等。(2)原子區(qū)域識(shí)別模塊主要分析JavaScript函數(shù)的調(diào)用關(guān)系,包括回調(diào)函數(shù)的調(diào)用,然后識(shí)別出回調(diào)階段完整的函數(shù)執(zhí)行鏈,用于識(shí)別出三種類型的原子區(qū)域:HTML,CSS 和 JavaScript。(3)原子性違反檢測模塊首先構(gòu)造活動(dòng)間事件約束,包括事件間的原子區(qū)域約束和事件內(nèi)的函數(shù)約束,然后對約束進(jìn)行重新編碼,再將SMT求解器作為求解工具來檢測是否存在原子性違反。(4)事件建模模塊主要將收集到的Trace中信息轉(zhuǎn)換為一個(gè)完整的事件模型Aevent,包括對XHR對象的建模、DOM元素的識(shí)別和提取以及JavaScript 回調(diào)函數(shù)的處理。(5)原子性違反定位模塊實(shí)現(xiàn)了細(xì)粒度的并發(fā)缺陷定位,即首先采用有限狀態(tài)自動(dòng)機(jī)表達(dá)AJAX的周期,并根據(jù)動(dòng)態(tài)事件模型Aevent,設(shè)計(jì)規(guī)則將Trace轉(zhuǎn)換成基于Aevent的Trace,再依據(jù)檢測到的原子性違反結(jié)果定位到造成違反的Aevent 事件對 TAP。實(shí)驗(yàn)中的網(wǎng)站選自Alexa-top500,我們從中選取了 22個(gè)包含穩(wěn)定原子性違反的網(wǎng)站。實(shí)驗(yàn)結(jié)果表明:AVChecker可以有效檢測出Web應(yīng)用中基于AJAX的原子性違反,誤報(bào)率較低(18%);準(zhǔn)確率可達(dá)到81.96%,好于現(xiàn)有的檢測工具EventRacer,并且能檢測出更多DOM類型的問題(175個(gè)VS94個(gè))。定位實(shí)驗(yàn)結(jié)果表明我們算法的定位成功率達(dá)到84.5%。
【學(xué)位授予單位】:南京大學(xué)
【學(xué)位級別】:碩士
【學(xué)位授予年份】:2017
【分類號】:TP393.09
【相似文獻(xiàn)】
相關(guān)期刊論文 前8條
1 黃少寅,高傳善;合同原子性及ACAP協(xié)議的實(shí)現(xiàn)[J];計(jì)算機(jī)研究與發(fā)展;2004年04期
2 甘元駒;基于多銀行的匿名的電子商務(wù)協(xié)議[J];計(jì)算機(jī)工程與應(yīng)用;2003年29期
3 郭云川,古天龍,董榮勝,蔡國永;Netbill協(xié)議原子性的符號模型檢驗(yàn)分析[J];計(jì)算機(jī)工程與應(yīng)用;2004年02期
4 黃濤;丁曉寧;魏峻;;基于應(yīng)用語義的網(wǎng)構(gòu)軟件松弛事務(wù)模型研究[J];中國科學(xué)E輯:信息科學(xué);2006年10期
5 王云飛;劉劍;馬越;;基于鎖信息的多線程軟件原子性錯(cuò)誤檢測方法[J];計(jì)算機(jī)應(yīng)用與軟件;2014年06期
6 吳學(xué)光;文艷軍;王戟;傅秀濤;綦艷霞;顧斌;;多重中斷C程序中數(shù)據(jù)競爭及原子性檢測[J];計(jì)算機(jī)科學(xué)與探索;2011年12期
7 席琳;周清雷;;改進(jìn)的電子商務(wù)協(xié)議邏輯分析方法[J];計(jì)算機(jī)工程;2010年13期
8 ;[J];;年期
相關(guān)重要報(bào)紙文章 前1條
1 上海 陳純;事務(wù)的魅力(上)[N];電腦報(bào);2004年
相關(guān)碩士學(xué)位論文 前1條
1 王德智;基于AJAX的Web應(yīng)用原子性違反檢測及定位[D];南京大學(xué);2017年
,
本文編號:
2537307
本文鏈接:http://sikaile.net/guanlilunwen/ydhl/2537307.html