999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Web 應(yīng)用程序中輸入驗(yàn)證測試研究綜述

2021-07-03 03:52:14付迪陽
現(xiàn)代計(jì)算機(jī) 2021年12期
關(guān)鍵詞:用戶檢測方法

付迪陽

(四川大學(xué)計(jì)算機(jī)學(xué)院,成都610065)

0 引言

互聯(lián)網(wǎng)仍將以指數(shù)增長,并在我們的日常生活中變得越來越重要,但這也導(dǎo)致了Web 應(yīng)用程序更易受到網(wǎng)絡(luò)騙子和黑客的攻擊,輸入驗(yàn)證在控制提交給系統(tǒng)的用戶輸入中起著關(guān)鍵作用,它對(duì)系統(tǒng)的魯棒性起著至關(guān)重要的作用??蛻舳溯斎腧?yàn)證功能的重要性體現(xiàn)在這三方面,①安全性:客戶端輸入驗(yàn)證功能的漏洞可能導(dǎo)致系統(tǒng)遭受網(wǎng)絡(luò)攻擊[1];②可靠性:客戶端輸入驗(yàn)證功能的缺陷可能導(dǎo)致用戶無效的輸入引起系統(tǒng)的崩潰;③性能:客戶端輸入驗(yàn)證功能的錯(cuò)誤可能導(dǎo)致允許無效輸入請(qǐng)求服務(wù)器的方式來降低客戶端與服務(wù)器之間不必要的通信來降低性能。因此,在任何與用戶有密集交互的軟件系統(tǒng)中,輸入驗(yàn)證是必不可少,同時(shí)也是一個(gè)重要而具有挑戰(zhàn)性的問題。

在軟件程序中,通常要求通過輸入驗(yàn)證,拒絕不滿足所需業(yè)務(wù)規(guī)則所規(guī)定的輸入來執(zhí)行系統(tǒng)約束,以此來保障系統(tǒng)的安全性和可靠性。例如,Web 應(yīng)用程序注冊(cè)新用戶時(shí),都需要要求用戶提交合法的用戶名和密碼,如果用戶名和密碼格式不合法則不予注冊(cè)直到符合系統(tǒng)要求為止。在很多信息系統(tǒng)中需要用戶提交相關(guān)個(gè)人信息,例如郵箱、電話號(hào)碼、身份證號(hào)碼,等等,這些信息內(nèi)容都是具有特定格式規(guī)范的,如果不滿足約束規(guī)則就不會(huì)提交到后臺(tái)服務(wù)器。正如MSDN 中安全Web 應(yīng)用程序的設(shè)計(jì)指南所述[2],適當(dāng)?shù)妮斎腧?yàn)證是抵御當(dāng)今應(yīng)用程序攻擊的最有力措施之一。然而輸入驗(yàn)證是一個(gè)具有挑戰(zhàn)性的問題,輸入驗(yàn)證的設(shè)計(jì)和實(shí)現(xiàn)都是由應(yīng)用程序開發(fā)人員進(jìn)行的,他們要考慮到周全有效的方法來測試輸入驗(yàn)證,有效防止網(wǎng)絡(luò)攻擊和提高程序系統(tǒng)可靠性,解決方案的主要負(fù)擔(dān)落在Web 應(yīng)用程序開發(fā)人員身上。

本文對(duì)近年來輸入驗(yàn)證測試包括功能測試和安全測試的相關(guān)研究進(jìn)行了綜述,并分析了這些研究進(jìn)展的優(yōu)缺點(diǎn),最后討論了輸入驗(yàn)證現(xiàn)有研究所面臨的挑戰(zhàn)和未來的發(fā)展趨勢,以期望對(duì)其研究能起到一定的幫助和推動(dòng)作用。

1 輸入驗(yàn)證的定義

Web 應(yīng)用程序通常采用圖1 所示的三層體系結(jié)構(gòu),包括客戶端(運(yùn)行在用戶瀏覽器上)、服務(wù)器端(運(yùn)行在Web 服務(wù)器上)和后端數(shù)據(jù)庫(將數(shù)據(jù)持久的存儲(chǔ)在數(shù)據(jù)庫服務(wù)器上)。近年來,為了提高效率和可用性,Web 應(yīng)用程序開始將許多計(jì)算任務(wù)遷移到客戶端。這通過減少瀏覽器不必要的請(qǐng)求Web 服務(wù)器的響應(yīng)需要,使應(yīng)用程序更具響應(yīng)性。現(xiàn)在,許多Web應(yīng)用程序包括客戶端輸入驗(yàn)證功能,這些功能檢查用戶輸入,并提示用戶輸入無效,提高用戶體驗(yàn)的同時(shí)也讓無效輸入不需要與Web 服務(wù)器進(jìn)行任何交互。

圖1 Web應(yīng)用程序三層體系結(jié)構(gòu)

輸入驗(yàn)證這一概念最早由Hui Liu 等人提出[3],是指大多數(shù)Web 應(yīng)用程序需要處理來自其外部環(huán)境提交的輸入來改變其外部效果。例如,許多Web 應(yīng)用程序接收用戶提交的輸入,以更新維護(hù)的數(shù)據(jù)庫。它們強(qiáng)制要求從外部環(huán)境提交的任何輸入必須滿足所需的約束,然后才能被接受以引發(fā)外部影響;而提交的違反約束的輸入將被拒絕,并且不會(huì)引發(fā)外部影響,這種強(qiáng)制稱為輸入驗(yàn)證。而Nuo Li[4]和Karel Frajták[5]等人則將起細(xì)化為Web 應(yīng)用程序用戶輸入驗(yàn)證(WA-UIV),但在軟件測試領(lǐng)域,他們都屬于輸入驗(yàn)證這一大的集合,是開發(fā)人員開發(fā)可靠應(yīng)用程序所需解決的問題,只是又根據(jù)平臺(tái)不同分為網(wǎng)頁端的Web 應(yīng)用、服務(wù)器端、移動(dòng)端的Android 和iOS 等,又可以強(qiáng)調(diào)用戶與Web 應(yīng)用程序之間的交互形式具體細(xì)化。本文僅討論Web 應(yīng)用程序的用戶輸入驗(yàn)證的相關(guān)研究。

2 輸入驗(yàn)證相關(guān)研究

當(dāng)前針對(duì)輸入驗(yàn)證的相關(guān)研究主要分為2 個(gè)方向,一個(gè)側(cè)重對(duì)輸入驗(yàn)證功能的測試,另一個(gè)則是側(cè)重對(duì)輸入驗(yàn)證安全的測試。輸入驗(yàn)證功能測試的方法又分為兩種,一種是基于規(guī)范的方法,一種是基于源代碼分析的方法。而輸入驗(yàn)證安全測試主要是通過開發(fā)Web 入侵檢測系統(tǒng)來檢測輸入驗(yàn)證的安全漏洞。本文將重點(diǎn)分析基于源代碼分析的功能測試,這種方式研究更為廣泛,測試結(jié)果更準(zhǔn)確,也更適用現(xiàn)代Web 應(yīng)用程序。

2.1 基于規(guī)范的方法

Bazzichi 和Spadafora[6]最早提出輸入驗(yàn)證測試有關(guān)的工作主要集中在自動(dòng)生成測試編譯器的程序,但不會(huì)生成測試用例。而Beizer[7]提出了一種語法測試方法,該方法使用來指定用戶命令,該方法應(yīng)用圖形覆蓋技術(shù)手動(dòng)生成測試用例。Marick[8]還提出了一種基于非正式準(zhǔn)則的語法測試方法。然而只涵蓋了語法,語法只是輸入驗(yàn)證的一部分。Hayes 和Offutt 提出[9]用于測試數(shù)據(jù)密集型系統(tǒng)的輸入驗(yàn)證。他們提出的這兩種輸入驗(yàn)證測試是一種基于規(guī)范的方法,它自動(dòng)分析用戶界面規(guī)范以生成測試用例,除了生成有效的測試用例外,還會(huì)生成無效的測試用例。由于Web 應(yīng)用程序中安全性的重要性,Offutt 等人提出了繞行測試[10],這種方式通過繞過客戶端檢查,創(chuàng)建無效的測試用例來測試應(yīng)用程序的輸入驗(yàn)證。這兩種方式單獨(dú)從規(guī)范生成測試用例,Goodenough 和Gerhart 在他們的軟件測試基礎(chǔ)論文中指出[11]基于規(guī)范的測試方法不能保證完全正確。

2.2 基于源代碼的方法

Hower[12]的研究工作都集中在Web 應(yīng)用程序的測試上。他們大多用于Web 應(yīng)用程序的靜態(tài)驗(yàn)證和測量,如協(xié)議一致性、壓力測試、鏈接檢查,不直接支持Web 應(yīng)用程序的功能測試。之后的研究著眼于通過形式化技術(shù)測試Web 應(yīng)用程序的功能需求。Ricca 和Tonella[13]提出了Web 應(yīng)用程序的UML 模型,以支持Web 應(yīng)用程序分析和驅(qū)動(dòng)測試用例生成。這兩種技術(shù)都從源代碼中提取模型,并將傳統(tǒng)的結(jié)構(gòu)和數(shù)據(jù)流測試應(yīng)用到Web 應(yīng)用程序域。Qi 等人[14]提出了一個(gè)基于代理的Web 應(yīng)用建??蚣堋T摲椒ù蟠蠼档土薟eb 應(yīng)用程序的復(fù)雜性,并在不同的功能層次上進(jìn)行了數(shù)據(jù)流測試。所提出的方法與這些方法在從源代碼恢復(fù)模型和使用結(jié)構(gòu)測試技術(shù)方面相同,但是,它側(cè)重于輸入驗(yàn)證的建模和測試。

Lucca 和Fasolino[15]將網(wǎng)絡(luò)應(yīng)用測試的策略分為白盒測試、黑盒測試和灰盒測試。白盒測試基于源代碼的抽象結(jié)構(gòu)生成測試輸入,可以基于客戶端源代碼或服務(wù)器端源代碼生成測試輸入。Liu 等人[16]分析HTML文檔,為Web 應(yīng)用程序創(chuàng)建數(shù)據(jù)流模型,并基于數(shù)據(jù)流模型生成測試輸入。Benedikt 等人[17]使用模型檢查器來探索Web 應(yīng)用程序中用戶可以遵循的Web 站點(diǎn)執(zhí)行路徑。與基于模型的方法相比,這種方法側(cè)重于Web 應(yīng)用程序的UIV 測試,不需要任何模型。Halfond和Orso[18]使用服務(wù)器端源代碼的靜態(tài)分析來提取輸入字段,然后根據(jù)輸入字段生成測試輸入。這種方式由于Web 應(yīng)用程序的服務(wù)器端代碼可以用不同的語言編寫,因此基于靜態(tài)分析自動(dòng)生成控制流程圖的方法并不能適用所有后端代碼。加上沒有測試支架,無法準(zhǔn)確確定服務(wù)器端測試的測試結(jié)果。Andrews 等人[19]提出利用字符串分析的方法對(duì)目標(biāo)應(yīng)用程序動(dòng)態(tài)生成字符串進(jìn)行靜態(tài)分析,用于檢查Web 應(yīng)用程序中格式良好的字符串構(gòu)造。字符串分析構(gòu)造了一個(gè)有限狀態(tài)自動(dòng)機(jī)(FSM),它近似于在運(yùn)行時(shí)程序位置為特定字符串變量生成的一組可能的字符串。字符串分析的一個(gè)缺點(diǎn)是分析結(jié)果不精確,導(dǎo)致格式良好檢查器中的假陽性。

在2006 年,Liu 和Tan 等人[20-24]提出了一種自動(dòng)驗(yàn)證和測試用例生成的方法,用于從程序源代碼中進(jìn)行輸入驗(yàn)證。該方法可以應(yīng)用于處理提交的輸入以提高測試輸入驗(yàn)證功能測試效率,但也會(huì)生成無效的測試用例,影響測試精度。之后,他們改進(jìn)了他們的方法,通過分析訪問的輸入之間的控制和數(shù)據(jù)依賴以及對(duì)程序中的影響,將輸入驗(yàn)證的一些不變性質(zhì)用于從程序源代碼中自動(dòng)恢復(fù)輸入驗(yàn)證的方法。這種改進(jìn)以幫助理解和維護(hù)輸入驗(yàn)證的性質(zhì),從而提高程序員的工作效率和工作質(zhì)量。2007 年,他們又提出了利用控制流程圖的變體表示-驗(yàn)證流圖的方法來實(shí)現(xiàn)自動(dòng)恢復(fù)輸入驗(yàn)證模型?;谠撃P椭贫藘蓚€(gè)覆蓋標(biāo)準(zhǔn)來測試輸入驗(yàn)證,并用這兩個(gè)標(biāo)準(zhǔn)來指導(dǎo)Web 應(yīng)用程序中輸入驗(yàn)證的結(jié)構(gòu)測試。但這樣計(jì)算復(fù)雜度高,輸入驗(yàn)證的測試準(zhǔn)確率也不是很高。2008 年,他們?yōu)榱烁鼫?zhǔn)確地測試輸入驗(yàn)證,提出了一種從代碼中提取路徑劃分和輸入條件的方法,用于測試輸入驗(yàn)證。這種方法對(duì)他們?cè)缙诠ぷ饔辛酥卮蟾倪M(jìn),理論和方法都有了顯著改進(jìn)。該方法引入了一個(gè)屬性,從代碼中推斷出有效和無效的輸入條件,以及使用恢復(fù)的輸入條件來幫助黑盒輸入驗(yàn)證測試的思想。此外,還對(duì)理論中使用的定義進(jìn)行了簡化和改進(jìn),消除了早期方法中的冗余和低效。

2.3 Web應(yīng)用攻擊檢測

Sayma Khan 和Amit Saxena[25]對(duì)網(wǎng)絡(luò)應(yīng)用攻擊進(jìn)行了研究并分析了Web 應(yīng)用程序中安全威脅的類型,提出了一種改進(jìn)的網(wǎng)絡(luò)應(yīng)用輸入驗(yàn)證攻擊檢測方法。Mehrnoush Vaseghipanah[26]開發(fā)了三個(gè)用于檢測輸入驗(yàn)證(IV)攻擊的度量,并為每個(gè)攻擊分配了一個(gè)秩序,還提出了一種檢測零假陽性率Web 應(yīng)用程序輸入驗(yàn)證的方法。這樣在檢測階段獲得更準(zhǔn)確的信息,利用檢測水平、準(zhǔn)確性和可發(fā)現(xiàn)性三種有效指標(biāo)來檢測Web應(yīng)用程序中IV 攻擊的方法。Deepa 等人[27]則開發(fā)了一個(gè)入侵檢測系統(tǒng)工具,它通過向攻擊者或惡意用戶提供預(yù)警來保護(hù)Web 應(yīng)用程序,從而可能不會(huì)進(jìn)一步利用應(yīng)用程序查找漏洞,并執(zhí)行ChiSquare 測試,以驗(yàn)證假設(shè)的輸入驗(yàn)證攻擊。M.Kishore[28]也是提出了入侵檢測系統(tǒng)的方法,利用網(wǎng)絡(luò)應(yīng)用程序發(fā)送的氨基酸編碼形式參數(shù)的成對(duì)序列比對(duì)檢測模式。使用了一種高效的Hirschberg 算法,這是一種分而治之的方法來發(fā)現(xiàn)針對(duì)Web 應(yīng)用程序的攻擊。然而傳統(tǒng)入侵檢測系統(tǒng)依然有效率不高,誤報(bào)率高,時(shí)間和空間復(fù)雜度更高的問題。

3 結(jié)語

通過對(duì)Web 應(yīng)用程序輸入驗(yàn)證測試的相關(guān)研究,我們發(fā)現(xiàn)仍然存在許多面臨挑戰(zhàn)的問題,下面將闡述這些問題并對(duì)未來輸入驗(yàn)證的研究方向進(jìn)行了展望。

輸入驗(yàn)證功能測試基于規(guī)范的方法通過設(shè)計(jì)違法輸入規(guī)范來構(gòu)造測試用例,嚴(yán)重依賴于開發(fā)文檔,然而絕大多數(shù)Web 應(yīng)用程序是沒有開發(fā)文檔的,讓該方法有了很大的局限性,這種方法會(huì)生成很多無效的測試用例,測試效率低下,增加了測試成本,并且不能完全自動(dòng)化?,F(xiàn)在Web 應(yīng)用測試基本都是基于代碼的方法,通過從程序源代碼(程序切片、控制流程圖及變體)自動(dòng)恢復(fù)輸入驗(yàn)證模型的方式。這種方式的復(fù)雜度高,測試精度和覆蓋率會(huì)依賴代碼的編寫好壞,并且測試用例的結(jié)果無法準(zhǔn)確給出具體約束類型,會(huì)使得開發(fā)人員自己去理解輸入驗(yàn)證代碼并重復(fù)測試過程。這使得開發(fā)測試周期加大,增加開發(fā)成本?;诎踩珳y試的方法大部分都通過建立Web 應(yīng)用入侵檢測系統(tǒng)的方式,這種方式誤報(bào)率高,計(jì)算復(fù)雜度高,而且效率很低。這些都是現(xiàn)在輸入驗(yàn)證測試所面臨的問題。

這幾年,隨著深度學(xué)習(xí)的快速發(fā)展,自然語言處理被大量用于處理文本數(shù)據(jù),例如情感分析、垃圾郵件識(shí)別,等等,并且取得了很好的效果。這讓自然語言處理運(yùn)用在代碼提供了思路。2020 年,微軟亞洲研究院就通過自然語言處理的技術(shù)通過CodeBERT[29]預(yù)訓(xùn)練模型來實(shí)現(xiàn)代碼搜索和代碼生成文檔的任務(wù),將代碼輸入到模型中,并通過訓(xùn)練的模型運(yùn)用到下游任務(wù)中。未來輸入驗(yàn)證測試的研究方向會(huì)將自然語言處理技術(shù)運(yùn)用到其中,利用先驗(yàn)知識(shí)將輸入驗(yàn)證代碼的約束標(biāo)注識(shí)別出來,并分類,利用深度學(xué)習(xí)去學(xué)習(xí)特征。這種方式一是可以準(zhǔn)確識(shí)別出輸入驗(yàn)證中的漏洞,并具體報(bào)告出是欠缺什么約束導(dǎo)致了漏洞。幫助開發(fā)人員理解自己的程序,并且快速準(zhǔn)確定位出錯(cuò)信息,減少了不必要的測試流程,提高了開發(fā)效率。二是這種方式可以嵌入到程序中,開發(fā)人員通過瀏覽器調(diào)試代碼就能可視化的呈現(xiàn)輸入驗(yàn)證報(bào)告信息。從第一時(shí)間就能解決輸入驗(yàn)證漏洞的問題,減少了開發(fā)周期和開發(fā)成本。所以,自然語言處理技術(shù)在未來測試軟件測試以及輸入驗(yàn)證測試中將會(huì)得到大量運(yùn)用。

猜你喜歡
用戶檢測方法
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
關(guān)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
小波變換在PCB缺陷檢測中的應(yīng)用
關(guān)注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
用對(duì)方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
捕魚
主站蜘蛛池模板: 欧美另类图片视频无弹跳第一页| 日本五区在线不卡精品| 国产91精品最新在线播放| 国产精品久久久精品三级| 一区二区三区精品视频在线观看| 国产一级二级三级毛片| 久久夜色精品国产嚕嚕亚洲av| 国产精品手机在线观看你懂的| 国产另类视频| 欧美成人区| 毛片免费高清免费| 国产精品视屏| 欧美在线精品怡红院| 在线中文字幕日韩| 免费又黄又爽又猛大片午夜| 美女啪啪无遮挡| 无码av免费不卡在线观看| 午夜无码一区二区三区| 无码电影在线观看| 试看120秒男女啪啪免费| 久久大香伊蕉在人线观看热2| 国产福利在线免费观看| 免费无码AV片在线观看国产| 久久国产V一级毛多内射| 在线中文字幕网| 亚洲国产系列| 一区二区日韩国产精久久| 国产综合网站| 国产人免费人成免费视频| 亚洲日韩AV无码一区二区三区人| 国产微拍一区二区三区四区| 国产人人射| 伊人久久大香线蕉影院| 91偷拍一区| 一本二本三本不卡无码| 2019国产在线| 亚洲人在线| 黄色网页在线观看| 国产成人综合久久精品尤物| 亚洲综合色婷婷| 亚洲国产精品无码久久一线| 国产成人精品视频一区二区电影| 日韩视频福利| 久久精品中文字幕免费| 免费国产高清视频| 天天色天天操综合网| 欧美成在线视频| 欧美啪啪视频免码| 国产真实乱人视频| 91久久国产成人免费观看| 三级视频中文字幕| 91精品人妻互换| 国产一级精品毛片基地| 国产网站免费观看| 欧美中出一区二区| 五月婷婷精品| 精品人妻AV区| 永久免费无码成人网站| 狠狠做深爱婷婷久久一区| 亚洲美女一级毛片| 综合亚洲网| 中文字幕色在线| 在线网站18禁| 色噜噜狠狠色综合网图区| 国产亚洲欧美在线专区| 国产成年无码AⅤ片在线| 免费一级无码在线网站| 亚洲精品欧美重口| 亚洲天堂伊人| 亚洲人成亚洲精品| 久草中文网| 中文字幕永久在线观看| 亚洲精品麻豆| 亚洲黄色激情网站| 欧美在线视频a| 四虎精品黑人视频| 天天色天天操综合网| 精品国产成人av免费| 欧美色综合网站| 国产毛片高清一级国语 | 欧美性爱精品一区二区三区 | 国产综合在线观看视频|