• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    Web應(yīng)用程序異步請求時序問題檢測*

    2018-01-16 01:43:09吉華斌
    計算機與生活 2018年1期
    關(guān)鍵詞:時序應(yīng)用程序頁面

    吉華斌,尚 穎,李 征

    北京化工大學 信息科學與技術(shù)學院,北京 100029

    1 引言

    Web應(yīng)用程序是指用戶可以通過Web瀏覽器訪問的應(yīng)用程序,由完成特定任務(wù)的各種Web組件構(gòu)成,并通過Web頁面將結(jié)果展示給用戶[1]。隨著Web應(yīng)用程序的發(fā)展,異步請求過程在其中扮演越來越重要的角色。通過異步請求的工作方式,Web應(yīng)用程序結(jié)合JavaScript(JS)和對文檔對象模型(document object model,DOM)的操作,完成數(shù)據(jù)的修改與傳輸,實現(xiàn)高水平的用戶交互[2]。

    DOM是處理可擴展標志語言的標準編程接口,它定義了HTML/XML的數(shù)據(jù)對象和屬性以及訪問方法[3]。Web應(yīng)用程序的數(shù)據(jù)操作請求一般是通過JS對DOM的數(shù)據(jù)操作[4],包括添加、移除、改變或重排頁面上的DOM項目,重構(gòu)HTML文檔。

    AJAX(asynchronous JavaScript and XML)技術(shù)是異步請求中最為常見的一種交互技術(shù)。AJAX是指異步的JavaScript和XML結(jié)合,在不重新加載整個網(wǎng)頁的情況下,對網(wǎng)頁的特定部分進行更新[5]。AJAX通過在后臺與服務(wù)器進行少量數(shù)據(jù)交換,使網(wǎng)頁實現(xiàn)異步更新,從而大大提高了與用戶之間的交互速度[6]。

    AJAX技術(shù)在提高Web應(yīng)用程序與用戶交互水平的同時,由于Web應(yīng)用程序設(shè)計不合理或網(wǎng)絡(luò)延遲等原因,可能導致服務(wù)端不能及時響應(yīng)客戶端請求,傳輸?shù)臄?shù)據(jù)發(fā)生錯誤,影響用戶的使用[7]。這些錯誤通常稱為異步請求錯誤。

    一些靜態(tài)分析方法被應(yīng)用于此類問題的分析檢測。如Guha等人對JavaScript程序靜態(tài)控制流進行分析,用于AJAX的錯誤檢測[8];Marchetto等人使用基于狀態(tài)的測試事件序列,用于測試AJAX特定的錯誤,并通過使用啟發(fā)式搜索算法優(yōu)化生成AJAX事件序列,有效檢出AJAX錯誤[9];Zheng等人則通過使用邏輯數(shù)據(jù)語言實現(xiàn)對JavaScript進行靜態(tài)分析,并實現(xiàn)從服務(wù)端抽取JavaScript并進行重寫,用于檢測AJAX存在的原子沖突和數(shù)據(jù)不一致問題[10]等。

    當異步請求的返回為靜態(tài)常量時,上述方法能很好地檢測其中的問題,但是當異步請求的返回為非靜態(tài)常量時,如對DOM的操作、變量操作、URL跳轉(zhuǎn)等,這些方法只能將其默認為靜態(tài)常量[11]。這些返回數(shù)據(jù)可以進一步觸發(fā)事件,進而引發(fā)異步請求錯誤,但作為靜態(tài)常量處理后,這些錯誤將不再可能被檢出。

    為了模擬異步請求過程,測試AJAX執(zhí)行過程中可能發(fā)生的問題,一些開源的工具如WebCollector(https://github.com/CrawlScript/WebCollector/)、OWASP AJAX Crawling Tool(https://code.google.com/archive/p/fuzzops-ng/)、CRAWLJAX[12]可以通過獲取AJAX動態(tài)執(zhí)行結(jié)果,對AJAX建立狀態(tài)模型進行測試[13]。Dong等人通過建立模型抓取詳細而精確的用戶交互之間的關(guān)聯(lián)和依賴,判斷其調(diào)用的實際方法在AJAX調(diào)用時是否被改寫,由此判斷數(shù)據(jù)傳輸是否符合預(yù)期,實現(xiàn)對異步請求的錯誤診斷[14]等。這些動態(tài)分析方法通過動態(tài)執(zhí)行能夠呈現(xiàn)異步請求返回為非靜態(tài)常量的各種情況,但分析的核心是傳輸數(shù)據(jù)結(jié)果的準確性,對異步請求返回中存在的事件操作之間或與原有的異步操作之間可能引發(fā)的異步請求問題檢測較少。

    本文在動態(tài)分析技術(shù)的基礎(chǔ)上,對返回值為非靜態(tài)常量的異步請求操作,通過URL參數(shù)從服務(wù)器端獲取完整的返回數(shù)據(jù),并進一步解析其中的事件操作,分析兩個事件操作之間或與原有的異步請求之間可能引發(fā)的問題,將此類問題定義為異步請求時序問題,并將兩者一起構(gòu)成異步請求交錯圖,通過圖的連通關(guān)系檢測可能發(fā)生的異步請求錯誤。在實踐過程中,重點分析了異步請求可能發(fā)生的DOM未加載、DOM共用和變量沖突等錯誤。最后通過動態(tài)驗證檢測結(jié)果的有效性。

    本文的主要貢獻是:(1)提出了一種基于交錯圖的異步請求時序問題檢測方法,將能夠引發(fā)異步請求的事件和數(shù)據(jù)組成交錯圖,對異步請求事件操作返回數(shù)據(jù)為非靜態(tài)常量的可能引發(fā)的異步請求時序錯誤進行分析和檢測。(2)實現(xiàn)了一個完整的工具原型,用于自動化檢測Web應(yīng)用程序中的異步請求時序問題。(3)對現(xiàn)有5個開源Web應(yīng)用程序和5個特定Web應(yīng)用程序,檢測其中的異步請求時序問題,并通過控制網(wǎng)絡(luò)條件進行驗證,結(jié)果表明了本文提出的檢測方法的有效性。

    2 異步請求時序問題

    2.1 異步請求過程

    首先介紹只有一個事件觸發(fā)的異步請求過程,其詳細過程如圖1所示,上面橢圓表示異步請求過程中的各個動作,下面矩形表示頁面中的DOM元素跟隨動作發(fā)生的變化。假定頁面包含DOM1、DOM2和DOM3共3組DOM元素,DOM1中包含一個能夠引發(fā)異步請求的事件A1。

    步驟1用戶觸發(fā)了事件A1,異步請求的返回將會作用于DOM2,此時頁面中DOM2和DOM3保持不變。

    步驟2瀏覽器發(fā)送請求給服務(wù)端,頁面中DOM2和DOM3保持不變。

    步驟3服務(wù)端后端進行處理,頁面中DOM2和DOM3保持不變。

    步驟4瀏覽器獲取返回后開始進行加載,頁面中DOM2和DOM3保持不變。

    步驟5瀏覽器加載完全,用戶看到DOM2更新為DOM2′,如圖1中的陰影部分,DOM3保持不變。

    根據(jù)異步請求的異步特性,在異步請求進行過程的5個步驟中,頁面中的DOM元素不會被鎖定,仍然可以繼續(xù)操作。下面考慮多個異步請求的情況。

    Fig.1 Process of asynchronous request圖1 異步請求詳細過程

    2.2 引例

    下面給出了一組返回值為非靜態(tài)常量的異步請求代碼示例(如圖2所示),詳細了解兩個異步請求進行過程中的關(guān)系。圖2(a)表示ID為tip的DOM綁定了一個click事件,并由此事件引發(fā)了一個AJAX請求,包含url、data、type等參數(shù),成功后返回參數(shù)xhr,并操作了ID為content的DOM元素,將返回值嵌入到其中。此時的返回值xhr.data即為非靜態(tài)常量,具體體現(xiàn)在content中是一個標簽,但是在異步請求執(zhí)行之前并不知道其具體的值。圖2(b)表示ID為choose的DOM綁定了一個click事件,返回值也是一個非靜態(tài)常量,最終也操作了ID為content的DOM元素,并將返回值嵌入到其中。圖2(c)表示content對應(yīng)的HTML代碼。

    根據(jù)一個異步請求的過程圖(圖1),將tip綁定的Ajax事件記為tip.click,choose.click表示choose綁定的Ajax事件。如果連續(xù)觸發(fā)事件tip.click和choose.click,可以得到兩個異步請求的過程圖如圖3。

    圖3表示tip.click和choose.click都會操作ID為content的DOM元素。由于在一個異步請求過程中,頁面不會被鎖定,即在圖3中choose.click可能發(fā)生在tip.click完成之前的任何一個過程中。tip.click觸發(fā)的異步請求返回將更新content,當在tip.click觸發(fā)的請求沒有完成對content更新之前(即content更新為content′之前),用戶觸發(fā)了choose.click,choose.click觸發(fā)的請求也將更新content,即對于content的最終更新結(jié)果content″,不確定是tip.click觸發(fā)的異步請求更新的結(jié)果,還是choose.click觸發(fā)的異步請求更新的結(jié)果,進而引發(fā)后續(xù)的操作錯誤。

    2.3 異步請求時序問題

    為了具體分析描述引例中的問題以及相關(guān)的問題,根據(jù)異步請求的過程,本文將兩個能夠引發(fā)異步請求的事件組合,引入異步請求時序的概念,具體定義如下。

    定義1(異步請求時序)一個引起異步請求的事件發(fā)生后,立即觸發(fā)另外一個事件處理時,頁面加載和參數(shù)傳遞的執(zhí)行順序。

    Fig.2 Example code圖2 引例代碼

    Fig.3 Process of two asynchronous requests圖3 兩個異步請求的過程

    在一個異步請求時序中,假如依次發(fā)生的兩個事件分別為A1和A2,當A1發(fā)生在A2引發(fā)的異步請求整個過程完成之后,即瀏覽器返回的數(shù)據(jù)已經(jīng)在客戶端完全展示出來之后,此異步請求時序不會引發(fā)錯誤;而當A1觸發(fā)的異步請求事件還未進行完全,觸發(fā)A2,即A2發(fā)生在A1引發(fā)的異步請求過程中,頁面元素可能還未完全加載,參數(shù)變量也有可能還在傳遞過程中,可能會引發(fā)錯誤,此類問題稱為異步請求時序問題。

    3 異步請求時序問題的交錯圖表示和分析

    3.1 事件和數(shù)據(jù)的交錯圖表示

    異步請求過程的事件和數(shù)據(jù)操作存在明顯的因果依賴關(guān)系,如果異步請求事件和數(shù)據(jù)元素過多,問題會變得非常復(fù)雜,為了高效地分析異步請求過程中因事件請求和數(shù)據(jù)操作引發(fā)的錯誤,對異步請求事件和數(shù)據(jù)操作進行有效建模,下面借助交錯圖對異步請求的事件和數(shù)據(jù)進行表示。首先給出異步請求時序的交錯圖的定義,如圖4所示,左邊分別表示DOM元素、事件操作和參數(shù)變量的節(jié)點表示,右邊為三者之間關(guān)系的箭頭表示。

    Fig.4 Definition of asynchronous request sequence interleaving graph圖4 異步請求時序的交錯圖定義

    根據(jù)交錯圖的定義,可以得到示例中兩個事件tip.click和choose.click的交錯圖,如圖5所示,通過有向圖的連通性[15],根據(jù)交錯圖可以看出兩個能夠引發(fā)異步請求的事件tip.click到choose.click存在弱連通。

    Fig.5 Interleaving graph presentation of example圖5 引例的交錯圖表示

    3.2 異步請求時序問題的交錯圖分析

    兩個異步請求事件A1和A2連續(xù)被觸發(fā)時,其可能出錯的原因是事件A2發(fā)生在A1引發(fā)的異步請求過程中。如果事件A1和A2分別作用于頁面的不同DOM元素中,且參數(shù)沒有任何關(guān)聯(lián)性,在兩個異步請求依次觸發(fā)的過程中,即使事件A2發(fā)生在A1引發(fā)的異步請求過程中,并不會影響A1觸發(fā)的異步請求,兩者互相不會有交集,也不會引發(fā)由于數(shù)據(jù)依賴關(guān)系發(fā)生的錯誤。因此根據(jù)兩個異步請求事件與數(shù)據(jù)操作之間的關(guān)系以及實際應(yīng)用程序中可能出現(xiàn)的情況,將可能引發(fā)異步請求時序錯誤的問題歸納為三類:

    (1)DOM未加載錯誤:存在一個DOM1包含將要觸發(fā)的異步請求事件A1,A1將會更新DOM2為DOM2′。如果DOM2′直接包含另一個異步請求事件,或者DOM2包含的DOM中存在另一個異步請求事件,那么在DOM2′還沒有加載完成時,觸發(fā)其中的另一個異步請求事件,這時觸發(fā)的事件會和想要觸發(fā)的事件不一致。

    (2)DOM共用錯誤:存在兩個異步請求事件A1和A2,事件A1將會更新DOM2,事件A2也會更新DOM2或者更新DOM2中包含的DOM。由于兩個事件操作了同一個DOM,不能確定兩個事件對于DOM2操作的先后執(zhí)行順序,也就不確定最終執(zhí)行完成后頁面加載的結(jié)果是否正確。

    (3)變量沖突錯誤:一個異步請求事件觸發(fā)也會使用參數(shù)變量,返回也會更改某些參數(shù)變量。存在兩個異步請求事件A1和A2,當A2操作的變量參數(shù)為事件A1返回的變量參數(shù)時,當兩個事件連續(xù)發(fā)生時,A2操作的參數(shù)也不確定是由A1更新之前的還是更新之后的。

    引例所示即為DOM共用錯誤。下面使用交錯圖表示其他兩類錯誤:圖6表示DOM未加載錯誤,D1包含的事件A1觸發(fā)的異步請求將會操作D2,而D2又包含一個新的異步請求事件A2,矩形虛線框中表示D2包含子DOM元素D3,D3中包含A2。A1將會更新D2,D2又包含A2,當D2還未加載完成時,觸發(fā)其中的事件A2,這時會引發(fā)異步請求時序錯誤,可以看出A1和A2通過D2或者D2和D3連通。

    Fig.6 Interleaving graph presentation of DOM not loaded圖6 DOM未加載問題交錯圖表示

    圖7表示變量沖突錯誤,D1包含的事件A1觸發(fā)的異步請求將會操作P1,而D2包含的事件A2觸發(fā)的異步請求也會操作P1。當A1在對P1參數(shù)的更新過程中觸發(fā)A2,這時會引發(fā)異步請求時序錯誤。可以看出A1和A2通過P1連通。

    Fig.7 Interleaving graph presentation of variables conflict圖7 變量沖突問題的交錯圖表示

    在一個Web應(yīng)用程序中,可能有很多引發(fā)異步請求的事件,以一個頁面為例,將其包含的所有異步請求事件作為一個集合,那么集合中的任意兩個元素組合可能引發(fā)異步請求錯誤,也可能不會引發(fā)異步請求錯誤。假設(shè)頁面中有n個異步請求事件,考慮所有異步請求事件兩兩組合中的關(guān)聯(lián)關(guān)系,需要分析的事件組合數(shù)為:

    因此異步請求時序問題的交錯圖分析流程如圖8所示。首先進行頁面分析得到所有的包含異步請求事件的集合,然后兩兩組合分析。圖中表示為第k次連接,通過每次的組合連接,如果兩個異步請求事件能夠連通,表示一組可能出錯的異步請求事件組合,通過連通的情況判斷為DOM未加載錯誤、DOM共用錯誤、變量沖突錯誤,或者不連通即為不存在錯誤,檢測算法將在下章詳細說明。然后k=k+1,對下一個組合進行判斷,循環(huán)直至n(n-1)/2個組合檢測完成,其時間復(fù)雜度為O(nlogn)。

    Fig.8 Flow graph of interleaving graph method圖8 交錯圖方法流程圖

    4 異步請求時序問題的檢測

    在上述異步請求交錯圖分析中,得到引起異步請求問題的三類錯誤:DOM未加載、DOM共用、變量沖突。根據(jù)上述產(chǎn)生異步請求問題的原因,下面將詳細講述對上述三類問題的檢測方法。

    當異步請求返回為靜態(tài)常量時,即操作對象和數(shù)據(jù)是已知的,無需后臺數(shù)據(jù)獲取,此時僅僅需要前端代碼,即可以通過關(guān)聯(lián)性分析異步請求錯誤。但是多數(shù)情況下,異步請求的返回涉及很多非靜態(tài)常量,例如圖2(b)中,這種情況下異步請求的返回變量xhr.data并不知道,需要從后臺獲取其對應(yīng)的數(shù)據(jù),因此需要知道后臺對應(yīng)的數(shù)據(jù)代碼,才能得到其對應(yīng)的交錯圖關(guān)系。具體檢測方法如下:

    由于異步請求的實現(xiàn)在JS文件中,其發(fā)起點為事件,事件綁定的是DOM,即綁定事件的DOM即為數(shù)據(jù)入口點。為了獲取含有異步請求的Web應(yīng)用程序的輸入值,本文采取逆向工程的過程[16],提取所有暴露的數(shù)據(jù)入口點。如算法1所示:輸入為JS文件,輸出為包含異步請求的事件集。dom1和dom2分別表示引發(fā)異步請求事件所在的DOM和異步請求返回操作的DOM。

    在獲取異步請求事件時,如果其返回值為靜態(tài)元素,直接可以得到其改變的DOM元素結(jié)構(gòu),否則需要根據(jù)異步請求的URL,通過后端程序獲取其返回值,賦予其對應(yīng)改變的DOM元素結(jié)構(gòu)。算法1中GetDOM2ByUrl表示當異步請求返回值為動態(tài)數(shù)據(jù)時,需要通過URL從后端獲取返回數(shù)據(jù)。

    算法1GetEventDOM

    通過算法1,可以獲取需要檢測的異步請求事件集,根據(jù)這些數(shù)據(jù)集,通過下面的方法,即可實現(xiàn)對以下三類錯誤的檢測。

    (1)DOM未加載錯誤的檢測

    如算法2所示,O為算法1獲取的事件集,新建一個空集合K用來存儲檢測后的事件集,初始i=0,將O中的元素依次加入到K中,并初始K[i].num為1,同時增加i值。如果新加入事件的觸發(fā)DOM元素(Triger-DOM)和K中某個事件的返回DOM(ReturnDOM)相同或包含(由于包含關(guān)系可能會很復(fù)雜,只考慮基礎(chǔ)的DOM樹的關(guān)系),即有可能引發(fā)異步請求問題,則更新相應(yīng)K[i].num為K[i].num+1,并將O.event加入K[i].event,直至O中所有元素遍歷完全。此時K中的元素num值大于1的事件集合就是可能發(fā)生DOM未加載的事件集。

    算法2GetUnreloadDOM

    (2)DOM共用的檢測

    如算法3所示,O為算法1獲取的事件集,新建一個空集合K用來存儲檢測后的事件集,初始i=0,將O中的元素依次加入到K中,并初始K[i].num為1,同時增加i值。如果新加入事件的返回DOM(Return-DOM)和K中某個事件的返回DOM(ReturnDOM)相同或包含,即會引發(fā)異步請求問題,則更新相應(yīng)K[i].num為K[i].num+1,并將O.event加入K[i].event,直至O中所有元素遍歷完全。此時K中的元素num值大于1的事件集合就是可能發(fā)生DOM共用的事件集。

    算法3GetReuseDOM

    (3)變量沖突檢測

    對于變量沖突的檢測方法和DOM共用類似,算法4同算法3,不再贅述。

    5 工具原型和實驗

    5.1 工具原型

    本文實現(xiàn)了一個完整的工具原型,用于DOM未加載、DOM共用和變量沖突等情況導致的異步請求時序問題的檢測,如圖9所示。為了實現(xiàn)獲取檢測方法中使用的異步請求事件集,需要前端部分與后端部分的綜合分析。具體的實現(xiàn)流程如下。

    (1)前端分析:通過使用Webkit的Webcore和Java-ScriptCore的API接口檢測所有JS文件,在異步請求的獲取中參考Jquery的Ajax,得到Ajax的url、發(fā)送的data以及success之后的返回值。

    (2)后端分析:(以PHP語言為例)通過PHP compiler獲取上述url對應(yīng)的Ajax返回值,結(jié)合得到Ajax返回值以及對DOM的操作。

    (3)綜合前端分析和后端分析結(jié)果,再通過上文描述的檢測算法,得到是否產(chǎn)生異步請求錯誤以及引起異步請求錯誤的問題類型。

    Fig.9 Tool prototype圖9 工具原型

    5.2 實驗設(shè)計

    文中提出的問題主要針對Web應(yīng)用程序中異步請求過程中可能發(fā)生的錯誤,因此在實驗對象的選擇上,首先構(gòu)造了針對各個錯誤的5個特定Web應(yīng)用程序,然后選取了異步請求較多的5個開源Web應(yīng)用程序。并且本文對開源Web應(yīng)用程序的檢測結(jié)果和之前靜態(tài)分析方法[10]的檢測結(jié)果進行對比。

    表1為5個針對特定問題的特定Web應(yīng)用程序,以及總文件大小、JS文件大小和AJAX文件大小。它們分別包含示例或?qū)嶋HWeb應(yīng)用程序中的一類異步請求錯誤,詳情如下:

    Case 1兩個異步請求事件改變同一個DOM的display屬性,block或者none。

    Case 2兩個異步請求事件改變同一個DOM元素的圖片內(nèi)容。

    Case 3異步請求事件操作的DOM在更新前后都包含一個URL,分別指向不同的外部地址。

    Case 4第一個異步請求事件操作的DOM內(nèi)包含和之前DOM內(nèi)相似的刪除事件,分別指向不同的文件。

    Case 5兩個異步請求事件同時操作同一個變量。

    Table 1 Web application cases表1 特定Web應(yīng)用程序

    表2中包含了另外5個開源的Web應(yīng)用程序Ajax File Browser(http://sourceforge.net/projects/ajaxfb/)、Photogallery(http://p.horm.org/er/)、Phormer(http://sourceforge.net/projects/rephormer/)、Quizzy(http://sourceforge.net/projects/quizzy/)、XHTML Chat(http://chat.plasticshore.com/)的詳細信息,分別為站點總文件大小、JS文件大小和AJAX文件大小。這里選用文件大小而不是文件個數(shù)的原因是現(xiàn)在許多應(yīng)用程序?qū)τ谏暇€應(yīng)用程序的JS文件會進行壓縮處理,比如多個文件壓縮成一個文件,因此使用文件大小能較為準確地衡量文件比例關(guān)系。另外,JS文件不包括外部的JS庫文件,因為多數(shù)庫文件很大,統(tǒng)計難度較大,然而應(yīng)用程序?qū)ζ涞氖褂檬侵苯诱{(diào)用其函數(shù)接口,所以以實際使用為準。

    Table 2 Open source Web applications表2 開源Web應(yīng)用程序

    5.3 檢測結(jié)果

    通過使用本文的方法對上述10個應(yīng)用程序進行檢測,得出可能出現(xiàn)錯誤的個數(shù)如表3所示。由于此類問題的發(fā)生具有不確定性,但都是引發(fā)異步請求錯誤的潛在因素。為了增加驗證中出現(xiàn)錯誤的可能性,表4給出了通過控制網(wǎng)絡(luò)條件,即在不同的網(wǎng)速條件下,通過10次實際操作,出現(xiàn)異步請求錯誤的次數(shù),對表3中的錯誤進行驗證。從表4可以看到,如果網(wǎng)絡(luò)條件良好的情況下,大部分結(jié)構(gòu)簡單的站點不容易引發(fā)錯誤,但是對于結(jié)構(gòu)復(fù)雜或含有大文件的數(shù)據(jù)交互時,還是有可能引發(fā)錯誤,雖然出現(xiàn)的概率比較低,也正因此,錯誤才不容易被發(fā)現(xiàn),然而這些錯誤在實際中可能會對用戶產(chǎn)生困擾,對用戶使用產(chǎn)生較大的影響,因此對于此類錯誤的檢測是有意義的。

    Table 3 Detecting result of asynchronous request sequence表3 異步請求時序錯誤檢測結(jié)果

    用本文的檢測結(jié)果和之前已有的結(jié)果[10]進行對比,這里只對實際的應(yīng)用程序進行對比,如表5所示。之前的方法只能檢測出變量沖突問題的個數(shù),因此其總個數(shù)就是其變量沖突問題的個數(shù)。除了Photogallery之前方法沒有進行實驗無法對比外,對于其余4個Web應(yīng)用程序,本文方法不僅檢出了和之前方法一樣多的變量沖突錯誤,而且還能檢測出文中提出的DOM未加載和DOM共用錯誤。因此,本文方法比之前的方法在DOM未加載和DOM共用兩類錯誤的檢測上具有明顯的優(yōu)勢。

    Table 4 Experimental verification表4 實驗驗證

    Table 5 Experimental result contrast表5 實驗對比

    6 結(jié)束語

    針對Web應(yīng)用程序的異步請求中,由于程序代碼設(shè)計不合理或網(wǎng)絡(luò)延遲等原因?qū)е碌臄?shù)據(jù)傳輸錯誤等問題,本文對返回中存在事件操作的異步請求,通過URL參數(shù)從服務(wù)器端獲取完整的返回數(shù)據(jù),分析兩個事件操作之間或與原有的異步請求之間可能引發(fā)的問題,并構(gòu)成異步請求交錯圖進行分析檢測。在此基礎(chǔ)上提出了一個完整的技術(shù)實現(xiàn)框架,用于自動化檢測Web應(yīng)用程序中的異步請求時序問題。利用本文方法,針對5個特定Web應(yīng)用程序和5個現(xiàn)有開源Web應(yīng)用程序,能夠檢測其中的異步請求問題,并通過控制網(wǎng)絡(luò)條件進行驗證,結(jié)果表明了本文提出的檢測方法的有效性。與之前的方法相比,本文方法能夠?qū)崿F(xiàn)更多的Web應(yīng)用程序問題檢測。

    進一步,對于本文檢測出的異步請求時序問題,部分可以通過AJAX的控制機制避免,或者在HTML書寫過程中,盡量避免使用過多的DOM嵌套。另外本文只考慮了JS文件中標準格式綁定的事件,而對于結(jié)構(gòu)比較混亂的代碼結(jié)構(gòu)檢出率可能會降低,因此需要用更多的實際應(yīng)用程序進行驗證。

    [1]Yang Jian,Papazoglou M P.Web component:a substrate for Web service reuse and composition[C]//LNCS 2348:Proceedings of the 14th International Conference on Advanced Information Systems Engineering,Toronto,May 27-31,2002.Berlin,Heidelberg:Springer,2002:21-36.

    [2]Mesbah A,van Deursen A,Roest D.Invariant-based automatic testing of modern Web applications[J].IEEE Transactions on Software Engineering,2012,38(1):35-53.

    [3]Jensen S H,Madsen M,M?llerA.Modeling the HTML DOM and browser API in static analysis of JavaScript Web applications[C]//Proceedings of the 19th ACM SIGSOFT Symposium on the Foundations of Software Engineering and 13th European Software Engineering Conference,Szeged,Sep 5-9,2011.New York:ACM,2011:59-69.

    [4]Patil P,Lambhate P.Crawler based Ajax Web application testing[J].International Journal of Current Engineering and Technology,2015,5(4):2621-2624.

    [5]Ocariza F,Bajaj K,Pattabiraman K,et al.An empirical study of client-side JavaScript bugs[C]//Proceedings of the 2013 International Symposium on Empirical Software Engineering and Measurement,Baltimore,Oct 10-11,2013.Washington:IEEE Computer Society,2013:55-64.

    [6]Wenzel M,Meinel C.Parallel network data processing in client side JavaScript applications[C]//Proceedings of the 2015 International Conference on Collaboration Technologies and Systems,Atlanta,Jun 1-5,2015.Piscataway:IEEE,2015:140-147.

    [7]Madsen M,Tip F,Lhoták O.Static analysis of event-driven Node.js JavaScript applications[C]//Proceedings of the 2015 International Conference on Object-Oriented Programming,Systems,Languages,and Applications,Pittsburgh,Oct 25-30,2015.New York:ACM,2015:505-519.

    [8]Guha A,Krishnamurthi S,Jim T.Using static analysis for Ajax intrusion detection[C]//Proceedings of the 18th International Conference on World Wide Web,Madrid,Apr 20-24,2009.New York:ACM,2009:561-570.

    [9]Marchetto A,Tonella P.Using search-based algorithms for Ajax event sequence generation during testing[J].Empirical Software Engineering,2011,16(1):103-140.

    [10]Zheng Yunhui,Bao Tao,Zhang Xiangyu.Statically locating Web application bugs caused by asynchronous calls[C]//Proceedings of the 20th International Conference on World Wide Web,Hyderabad,Mar 28-Apr 1,2011.New York:ACM,2011:805-814.

    [11]Alimadadi S,Mesbah A,Pattabiraman K.Understanding asynchronous interactions in full-stack JavaScript[C]//Proceedings of the 38th International Conference on Software Engineering,Austin,May 14-22,2016.New York:ACM,2016:1169-1180.

    [12]Mesbah A,Bozdag E,van Deursen A.Crawling AJAX by inferring user interface state changes[C]//Proceedings of the 5th International Conference on Web Engineering,Yorktown Heights,Jul 14-18,2008.Washington:IEEE Computer Society,2008:122-134.

    [13]Mesbah A,van Deursen A,Lenselink S.Crawling Ajaxbased Web applications through dynamic analysis of user interface state changes[J].ACM Transactions on the Web,2012,6(1):3.

    [14]Dong Xinshu,Patil K,Mao Jian,et al.Acomprehensive clientside behavior model for diagnosing attacks in Ajax applications[C]//Proceedings of the 18th International Conference on Engineering of Complex Computer Systems,Singapore,Jul 17-19,2013.Washington:IEEE Computer Society,2013:177-187.

    [15]West D B.Introduction to graph theory[M].Upper Saddle River:Prentice Hall,2001.

    [16]Marchetto A,Tonella P,Ricca F.Reajax:a reverse engineering tool for Ajax Web applications[J].IET Software,2012,6(1):33-49.

    猜你喜歡
    時序應(yīng)用程序頁面
    時序坐標
    大狗熊在睡覺
    刷新生活的頁面
    基于Sentinel-2時序NDVI的麥冬識別研究
    刪除Win10中自帶的應(yīng)用程序
    電腦報(2019年12期)2019-09-10 05:08:20
    一種毫米波放大器時序直流電源的設(shè)計
    電子制作(2016年15期)2017-01-15 13:39:08
    DPBUS時序及其設(shè)定方法
    河南科技(2014年15期)2014-02-27 14:12:36
    關(guān)閉應(yīng)用程序更新提醒
    電腦迷(2012年15期)2012-04-29 17:09:47
    同一Word文檔 縱橫頁面并存
    淺析ASP.NET頁面導航技術(shù)
    午夜免费男女啪啪视频观看| 国产白丝娇喘喷水9色精品| 国产亚洲一区二区精品| 激情 狠狠 欧美| 边亲边吃奶的免费视频| h视频一区二区三区| 一本一本综合久久| 啦啦啦在线观看免费高清www| 亚洲第一区二区三区不卡| 国产乱人偷精品视频| 91精品伊人久久大香线蕉| 亚洲欧洲国产日韩| 大陆偷拍与自拍| 啦啦啦视频在线资源免费观看| 国产一区二区三区av在线| 成人亚洲精品一区在线观看 | 高清欧美精品videossex| 欧美国产精品一级二级三级 | 国产欧美亚洲国产| 老师上课跳d突然被开到最大视频| 2021少妇久久久久久久久久久| 欧美国产精品一级二级三级 | 两个人的视频大全免费| 小蜜桃在线观看免费完整版高清| 性色av一级| 女人十人毛片免费观看3o分钟| 综合色丁香网| 久久国产亚洲av麻豆专区| 久久人人爽av亚洲精品天堂 | 亚洲国产精品成人久久小说| 亚洲国产欧美人成| 婷婷色综合大香蕉| 欧美区成人在线视频| 亚洲丝袜综合中文字幕| 免费看av在线观看网站| 王馨瑶露胸无遮挡在线观看| 欧美精品国产亚洲| 国产乱人视频| 国产白丝娇喘喷水9色精品| 国产免费又黄又爽又色| 少妇熟女欧美另类| 国模一区二区三区四区视频| 久久久久视频综合| 99re6热这里在线精品视频| 亚洲欧美中文字幕日韩二区| 国产精品欧美亚洲77777| 亚洲精品日韩av片在线观看| 亚洲成人av在线免费| 成人午夜精彩视频在线观看| 免费看av在线观看网站| 在线 av 中文字幕| av在线播放精品| 国产男人的电影天堂91| 亚洲欧美精品专区久久| 免费观看av网站的网址| 中文资源天堂在线| 高清在线视频一区二区三区| 狂野欧美白嫩少妇大欣赏| 97热精品久久久久久| 成人特级av手机在线观看| 少妇人妻 视频| 亚洲av中文av极速乱| 成人亚洲精品一区在线观看 | 国产有黄有色有爽视频| 国产精品不卡视频一区二区| 久久久久久久久久久丰满| 麻豆精品久久久久久蜜桃| 一本久久精品| 狂野欧美激情性xxxx在线观看| 亚洲综合色惰| 深夜a级毛片| 我的老师免费观看完整版| 成人高潮视频无遮挡免费网站| 黄色欧美视频在线观看| 亚洲成人一二三区av| 久久国内精品自在自线图片| 青青草视频在线视频观看| 亚洲av福利一区| 亚洲av成人精品一二三区| 亚洲av中文av极速乱| 国产精品久久久久久久电影| 亚洲性久久影院| 久久精品熟女亚洲av麻豆精品| 亚洲国产成人一精品久久久| 久久精品夜色国产| 18禁裸乳无遮挡免费网站照片| 偷拍熟女少妇极品色| 国产欧美另类精品又又久久亚洲欧美| 日韩中字成人| 精品人妻偷拍中文字幕| 欧美最新免费一区二区三区| 亚洲国产精品999| 99久久精品一区二区三区| 97在线人人人人妻| 91精品国产九色| 熟女人妻精品中文字幕| 成人漫画全彩无遮挡| 十分钟在线观看高清视频www | 涩涩av久久男人的天堂| 一级av片app| 最近的中文字幕免费完整| 18禁裸乳无遮挡免费网站照片| 久久99热这里只频精品6学生| 免费久久久久久久精品成人欧美视频 | 久久国产乱子免费精品| 欧美精品一区二区大全| 人人妻人人澡人人爽人人夜夜| 国产毛片在线视频| 99久久精品一区二区三区| 内地一区二区视频在线| 亚洲av综合色区一区| 亚洲欧美中文字幕日韩二区| 亚洲欧美清纯卡通| 国产精品久久久久久av不卡| 国产精品女同一区二区软件| 成人特级av手机在线观看| 国产亚洲最大av| 一级a做视频免费观看| 国产欧美另类精品又又久久亚洲欧美| 精品国产三级普通话版| 亚洲精品日韩av片在线观看| 免费高清在线观看视频在线观看| 两个人的视频大全免费| 在线天堂最新版资源| av天堂中文字幕网| 色综合色国产| 亚洲在久久综合| 高清视频免费观看一区二区| 蜜桃在线观看..| 80岁老熟妇乱子伦牲交| 日韩视频在线欧美| 一级爰片在线观看| 高清在线视频一区二区三区| 亚洲av不卡在线观看| 在线免费观看不下载黄p国产| 老司机影院成人| 在现免费观看毛片| 国产精品久久久久成人av| 亚洲综合精品二区| 最后的刺客免费高清国语| 99久久综合免费| 99久久综合免费| 亚洲高清免费不卡视频| 嫩草影院入口| 王馨瑶露胸无遮挡在线观看| 国产成人a∨麻豆精品| 久久 成人 亚洲| 精品久久久精品久久久| 精品一区二区三区视频在线| 乱系列少妇在线播放| 99久国产av精品国产电影| 欧美成人一区二区免费高清观看| 最近中文字幕高清免费大全6| 久久人人爽av亚洲精品天堂 | 国产成人a区在线观看| 直男gayav资源| 中文字幕免费在线视频6| 一级黄片播放器| 水蜜桃什么品种好| 丝袜脚勾引网站| 一本一本综合久久| 老司机影院成人| 国产片特级美女逼逼视频| av不卡在线播放| 久久久色成人| 毛片女人毛片| 亚洲va在线va天堂va国产| 18禁裸乳无遮挡免费网站照片| 欧美成人一区二区免费高清观看| 亚洲成人手机| 天天躁日日操中文字幕| 免费观看无遮挡的男女| 日日摸夜夜添夜夜爱| 久久国产亚洲av麻豆专区| 美女福利国产在线 | 晚上一个人看的免费电影| 极品教师在线视频| 18禁动态无遮挡网站| 极品教师在线视频| 亚洲精品国产av蜜桃| 欧美极品一区二区三区四区| 国产91av在线免费观看| 亚洲不卡免费看| av视频免费观看在线观看| 日韩欧美 国产精品| 亚洲怡红院男人天堂| 日本av手机在线免费观看| 国产老妇伦熟女老妇高清| 男人和女人高潮做爰伦理| 18禁在线无遮挡免费观看视频| 日韩免费高清中文字幕av| 亚洲欧美清纯卡通| 国产人妻一区二区三区在| 色婷婷久久久亚洲欧美| 插阴视频在线观看视频| 久久人人爽av亚洲精品天堂 | 日韩视频在线欧美| 亚洲人成网站高清观看| 精品人妻一区二区三区麻豆| 在线观看一区二区三区激情| 在线观看免费视频网站a站| 欧美高清成人免费视频www| 久久毛片免费看一区二区三区| 少妇的逼水好多| 久久亚洲国产成人精品v| 久久av网站| 少妇高潮的动态图| 肉色欧美久久久久久久蜜桃| 人妻夜夜爽99麻豆av| 久久99精品国语久久久| 欧美日韩精品成人综合77777| av免费观看日本| 五月伊人婷婷丁香| 精品一区二区免费观看| 日韩制服骚丝袜av| 欧美精品国产亚洲| 一级毛片电影观看| 有码 亚洲区| 有码 亚洲区| 久久久久久久精品精品| 卡戴珊不雅视频在线播放| 夜夜骑夜夜射夜夜干| av不卡在线播放| 精品一区二区三区视频在线| 晚上一个人看的免费电影| 91精品国产九色| 中文字幕人妻熟人妻熟丝袜美| 亚洲人成网站高清观看| 熟女av电影| 久久久久久久久久久丰满| 免费看av在线观看网站| 国模一区二区三区四区视频| 老司机影院成人| 一级av片app| 老熟女久久久| 精品亚洲乱码少妇综合久久| 成人美女网站在线观看视频| 久久久欧美国产精品| 国产白丝娇喘喷水9色精品| 在线天堂最新版资源| 国产免费福利视频在线观看| 国产精品国产三级专区第一集| 又大又黄又爽视频免费| 大片电影免费在线观看免费| 成人特级av手机在线观看| 99九九线精品视频在线观看视频| 啦啦啦视频在线资源免费观看| 亚洲精品国产av成人精品| 免费在线观看成人毛片| 国产欧美日韩一区二区三区在线 | av在线观看视频网站免费| 亚洲怡红院男人天堂| 亚洲av福利一区| 丰满乱子伦码专区| 久久 成人 亚洲| av女优亚洲男人天堂| 极品教师在线视频| 亚洲精品一区蜜桃| 亚洲人成网站高清观看| 伊人久久精品亚洲午夜| 大话2 男鬼变身卡| 国产午夜精品久久久久久一区二区三区| 3wmmmm亚洲av在线观看| 国产成人免费观看mmmm| 美女xxoo啪啪120秒动态图| 午夜老司机福利剧场| 乱系列少妇在线播放| 欧美3d第一页| 99热这里只有精品一区| 午夜免费男女啪啪视频观看| 成人亚洲精品一区在线观看 | 日韩中字成人| 国产成人免费观看mmmm| 青青草视频在线视频观看| 日韩免费高清中文字幕av| 美女高潮的动态| 亚洲av在线观看美女高潮| 日韩电影二区| 伦理电影大哥的女人| 1000部很黄的大片| 3wmmmm亚洲av在线观看| 一本色道久久久久久精品综合| 伦理电影免费视频| 午夜老司机福利剧场| 啦啦啦啦在线视频资源| 老师上课跳d突然被开到最大视频| 午夜免费观看性视频| 在线精品无人区一区二区三 | 一区二区三区乱码不卡18| 国产精品伦人一区二区| 精品一区二区三卡| av视频免费观看在线观看| 看免费成人av毛片| 边亲边吃奶的免费视频| 精品久久久久久电影网| 国产亚洲最大av| 国产免费视频播放在线视频| 少妇人妻精品综合一区二区| 久久久a久久爽久久v久久| 亚洲欧美日韩东京热| 国产精品久久久久久久电影| 久久精品久久久久久噜噜老黄| a级毛片免费高清观看在线播放| 国产成人a∨麻豆精品| 久久精品国产亚洲网站| 亚洲人成网站高清观看| 黄色配什么色好看| 纵有疾风起免费观看全集完整版| 免费观看a级毛片全部| 久久影院123| av女优亚洲男人天堂| 国产爽快片一区二区三区| 联通29元200g的流量卡| 精品国产一区二区三区久久久樱花 | 91精品一卡2卡3卡4卡| 肉色欧美久久久久久久蜜桃| 日韩伦理黄色片| 亚洲欧洲日产国产| 久久韩国三级中文字幕| 男人狂女人下面高潮的视频| 国产在线男女| 国产熟女欧美一区二区| 久久99蜜桃精品久久| av一本久久久久| 成年人午夜在线观看视频| 亚洲图色成人| 日韩在线高清观看一区二区三区| 亚洲熟女精品中文字幕| 有码 亚洲区| 亚洲国产色片| 久久久a久久爽久久v久久| 国产伦在线观看视频一区| 男女免费视频国产| 我的女老师完整版在线观看| 91久久精品国产一区二区成人| 亚洲欧美一区二区三区国产| 在线观看人妻少妇| 亚洲av日韩在线播放| 欧美国产精品一级二级三级 | 啦啦啦在线观看免费高清www| 国产精品精品国产色婷婷| 国产老妇伦熟女老妇高清| 蜜桃久久精品国产亚洲av| 日韩在线高清观看一区二区三区| 天天躁夜夜躁狠狠久久av| 又粗又硬又长又爽又黄的视频| 18禁在线无遮挡免费观看视频| 色视频www国产| 熟女av电影| 久久久午夜欧美精品| 自拍欧美九色日韩亚洲蝌蚪91 | 丰满乱子伦码专区| 99久久精品国产国产毛片| 免费黄网站久久成人精品| 国产欧美亚洲国产| 观看av在线不卡| 丰满迷人的少妇在线观看| 五月天丁香电影| 日韩电影二区| 高清黄色对白视频在线免费看 | 日日啪夜夜撸| 久久久国产一区二区| 国模一区二区三区四区视频| 国产乱人偷精品视频| 免费av不卡在线播放| 成人黄色视频免费在线看| 免费av中文字幕在线| 成年人午夜在线观看视频| 精品一区二区三卡| 成年美女黄网站色视频大全免费 | 国产中年淑女户外野战色| 成年女人在线观看亚洲视频| 你懂的网址亚洲精品在线观看| 日韩精品有码人妻一区| 少妇猛男粗大的猛烈进出视频| 特大巨黑吊av在线直播| 欧美人与善性xxx| 久久久亚洲精品成人影院| 成人特级av手机在线观看| 一级黄片播放器| 久久久精品免费免费高清| 99视频精品全部免费 在线| 国产精品一及| av卡一久久| 久久精品国产亚洲av天美| 伦精品一区二区三区| 亚洲av中文av极速乱| 国产综合精华液| 国产精品伦人一区二区| 日韩在线高清观看一区二区三区| 在线观看免费日韩欧美大片 | 亚洲国产成人一精品久久久| 久久av网站| 婷婷色综合大香蕉| 久久韩国三级中文字幕| 女的被弄到高潮叫床怎么办| 国产精品99久久久久久久久| 久久精品国产自在天天线| 国产成人免费无遮挡视频| 晚上一个人看的免费电影| 亚洲在久久综合| 黄片wwwwww| 一区二区三区免费毛片| 99热这里只有精品一区| 日韩视频在线欧美| 身体一侧抽搐| 中文精品一卡2卡3卡4更新| 国语对白做爰xxxⅹ性视频网站| 国产亚洲av片在线观看秒播厂| 制服丝袜香蕉在线| 国产成人精品婷婷| 色婷婷久久久亚洲欧美| 亚洲av中文字字幕乱码综合| 天堂中文最新版在线下载| 午夜激情久久久久久久| 男人和女人高潮做爰伦理| av专区在线播放| 日日啪夜夜撸| 在线观看美女被高潮喷水网站| 国产视频内射| www.av在线官网国产| 99久久精品热视频| 日韩免费高清中文字幕av| 国产日韩欧美亚洲二区| 国产免费一级a男人的天堂| 亚洲精品国产成人久久av| 麻豆乱淫一区二区| 国产伦在线观看视频一区| 一区二区av电影网| 毛片女人毛片| 精品久久久噜噜| 国产精品成人在线| 91精品国产国语对白视频| 精品亚洲成国产av| 亚洲av日韩在线播放| 青春草亚洲视频在线观看| 欧美高清性xxxxhd video| 精品熟女少妇av免费看| 国国产精品蜜臀av免费| 韩国av在线不卡| 伦理电影大哥的女人| 18禁裸乳无遮挡动漫免费视频| 一本一本综合久久| 人妻 亚洲 视频| 精华霜和精华液先用哪个| 王馨瑶露胸无遮挡在线观看| 国产亚洲av片在线观看秒播厂| 亚洲精品自拍成人| 观看美女的网站| 成年av动漫网址| 夜夜看夜夜爽夜夜摸| 在线观看国产h片| 如何舔出高潮| 欧美最新免费一区二区三区| 九色成人免费人妻av| 国产精品国产三级国产专区5o| 久久精品国产亚洲av涩爱| 亚洲av成人精品一二三区| 亚洲欧美中文字幕日韩二区| 国产精品99久久久久久久久| 久久久久精品久久久久真实原创| 天美传媒精品一区二区| 热re99久久精品国产66热6| 亚洲成色77777| 啦啦啦在线观看免费高清www| 最近的中文字幕免费完整| 色综合色国产| 亚洲国产欧美在线一区| 午夜激情福利司机影院| 日韩,欧美,国产一区二区三区| 国产亚洲欧美精品永久| 久久精品久久久久久久性| 亚洲经典国产精华液单| 男女边吃奶边做爰视频| 国产精品久久久久久久久免| 国产精品一区二区在线观看99| 欧美另类一区| 欧美高清性xxxxhd video| 欧美xxⅹ黑人| 成人漫画全彩无遮挡| 青春草视频在线免费观看| av在线观看视频网站免费| 91精品伊人久久大香线蕉| 成人午夜精彩视频在线观看| 黄片wwwwww| 热99国产精品久久久久久7| 国产探花极品一区二区| 各种免费的搞黄视频| 久久久久国产精品人妻一区二区| 国产一区二区三区综合在线观看 | 欧美亚洲 丝袜 人妻 在线| 国模一区二区三区四区视频| 国产精品国产av在线观看| 黄片wwwwww| 精品一区二区三区视频在线| 人人妻人人澡人人爽人人夜夜| 麻豆国产97在线/欧美| 如何舔出高潮| 中文字幕av成人在线电影| 少妇猛男粗大的猛烈进出视频| 亚洲第一av免费看| 最新中文字幕久久久久| 欧美xxxx性猛交bbbb| 黄色一级大片看看| 成人影院久久| 丝袜喷水一区| 亚洲成人中文字幕在线播放| 亚洲精品日本国产第一区| 岛国毛片在线播放| 多毛熟女@视频| 精品人妻一区二区三区麻豆| 亚洲精品自拍成人| 我要看黄色一级片免费的| 国产一区二区三区综合在线观看 | 亚洲欧美日韩无卡精品| 99久久精品国产国产毛片| 国产精品99久久久久久久久| 精品久久国产蜜桃| 丝瓜视频免费看黄片| 91午夜精品亚洲一区二区三区| 国产精品久久久久成人av| 内射极品少妇av片p| 亚洲精品色激情综合| 亚洲不卡免费看| 亚洲精品,欧美精品| 亚洲欧美清纯卡通| 少妇高潮的动态图| 日韩强制内射视频| 精品人妻一区二区三区麻豆| 亚洲成人中文字幕在线播放| 乱系列少妇在线播放| 成人亚洲精品一区在线观看 | 国模一区二区三区四区视频| 亚洲在久久综合| 午夜免费鲁丝| 久久精品熟女亚洲av麻豆精品| 少妇人妻久久综合中文| 亚洲精品第二区| 日本免费在线观看一区| 天天躁日日操中文字幕| 亚洲欧美成人精品一区二区| 一本色道久久久久久精品综合| 99久久人妻综合| 亚洲欧美精品专区久久| 亚洲国产色片| 肉色欧美久久久久久久蜜桃| 久久久久久久精品精品| 人人妻人人看人人澡| 国产一区亚洲一区在线观看| 欧美成人午夜免费资源| 免费人妻精品一区二区三区视频| 狂野欧美激情性bbbbbb| 免费观看在线日韩| 毛片女人毛片| 国产熟女欧美一区二区| 卡戴珊不雅视频在线播放| 亚洲久久久国产精品| 各种免费的搞黄视频| 精品人妻一区二区三区麻豆| 91aial.com中文字幕在线观看| 在线免费十八禁| 在线看a的网站| 嫩草影院入口| 五月开心婷婷网| 欧美zozozo另类| 国产伦在线观看视频一区| 亚洲国产精品一区三区| 久久精品熟女亚洲av麻豆精品| 99热网站在线观看| 亚洲国产精品国产精品| 国产真实伦视频高清在线观看| 简卡轻食公司| 国产永久视频网站| 一本久久精品| 欧美区成人在线视频| 美女福利国产在线 | 最近中文字幕2019免费版| 天天躁日日操中文字幕| 久久鲁丝午夜福利片| 成人影院久久| 91精品一卡2卡3卡4卡| 多毛熟女@视频| 久久久久久久亚洲中文字幕| 国产一区亚洲一区在线观看| 久久精品国产a三级三级三级| 精华霜和精华液先用哪个| 国产精品久久久久久久久免| freevideosex欧美| 亚洲欧美一区二区三区国产| 欧美精品一区二区大全| 亚洲欧美清纯卡通| 亚洲欧美精品自产自拍| 插阴视频在线观看视频| 亚洲经典国产精华液单| 欧美日韩国产mv在线观看视频 | 一级a做视频免费观看| 久久这里有精品视频免费| 黑人高潮一二区| 亚洲三级黄色毛片| 国产一区亚洲一区在线观看| 老师上课跳d突然被开到最大视频| xxx大片免费视频| 成人午夜精彩视频在线观看| 最近中文字幕高清免费大全6| 美女脱内裤让男人舔精品视频| 男人爽女人下面视频在线观看| 免费观看av网站的网址| av不卡在线播放| 亚洲欧美一区二区三区黑人 | 国产伦在线观看视频一区| 成人影院久久| 国产av一区二区精品久久 | 国产在视频线精品| 欧美日韩综合久久久久久| 97热精品久久久久久|