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

Web 應用程序中輸入驗證測試研究綜述

2021-07-03 03:52:14付迪陽
現代計算機 2021年12期
關鍵詞:用戶檢測方法

付迪陽

(四川大學計算機學院,成都610065)

0 引言

互聯網仍將以指數增長,并在我們的日常生活中變得越來越重要,但這也導致了Web 應用程序更易受到網絡騙子和黑客的攻擊,輸入驗證在控制提交給系統的用戶輸入中起著關鍵作用,它對系統的魯棒性起著至關重要的作用。客戶端輸入驗證功能的重要性體現在這三方面,①安全性:客戶端輸入驗證功能的漏洞可能導致系統遭受網絡攻擊[1];②可靠性:客戶端輸入驗證功能的缺陷可能導致用戶無效的輸入引起系統的崩潰;③性能:客戶端輸入驗證功能的錯誤可能導致允許無效輸入請求服務器的方式來降低客戶端與服務器之間不必要的通信來降低性能。因此,在任何與用戶有密集交互的軟件系統中,輸入驗證是必不可少,同時也是一個重要而具有挑戰性的問題。

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

本文對近年來輸入驗證測試包括功能測試和安全測試的相關研究進行了綜述,并分析了這些研究進展的優缺點,最后討論了輸入驗證現有研究所面臨的挑戰和未來的發展趨勢,以期望對其研究能起到一定的幫助和推動作用。

1 輸入驗證的定義

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

圖1 Web應用程序三層體系結構

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

2 輸入驗證相關研究

當前針對輸入驗證的相關研究主要分為2 個方向,一個側重對輸入驗證功能的測試,另一個則是側重對輸入驗證安全的測試。輸入驗證功能測試的方法又分為兩種,一種是基于規范的方法,一種是基于源代碼分析的方法。而輸入驗證安全測試主要是通過開發Web 入侵檢測系統來檢測輸入驗證的安全漏洞。本文將重點分析基于源代碼分析的功能測試,這種方式研究更為廣泛,測試結果更準確,也更適用現代Web 應用程序。

2.1 基于規范的方法

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

2.2 基于源代碼的方法

Hower[12]的研究工作都集中在Web 應用程序的測試上。他們大多用于Web 應用程序的靜態驗證和測量,如協議一致性、壓力測試、鏈接檢查,不直接支持Web 應用程序的功能測試。之后的研究著眼于通過形式化技術測試Web 應用程序的功能需求。Ricca 和Tonella[13]提出了Web 應用程序的UML 模型,以支持Web 應用程序分析和驅動測試用例生成。這兩種技術都從源代碼中提取模型,并將傳統的結構和數據流測試應用到Web 應用程序域。Qi 等人[14]提出了一個基于代理的Web 應用建模框架。該方法大大降低了Web 應用程序的復雜性,并在不同的功能層次上進行了數據流測試。所提出的方法與這些方法在從源代碼恢復模型和使用結構測試技術方面相同,但是,它側重于輸入驗證的建模和測試。

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

在2006 年,Liu 和Tan 等人[20-24]提出了一種自動驗證和測試用例生成的方法,用于從程序源代碼中進行輸入驗證。該方法可以應用于處理提交的輸入以提高測試輸入驗證功能測試效率,但也會生成無效的測試用例,影響測試精度。之后,他們改進了他們的方法,通過分析訪問的輸入之間的控制和數據依賴以及對程序中的影響,將輸入驗證的一些不變性質用于從程序源代碼中自動恢復輸入驗證的方法。這種改進以幫助理解和維護輸入驗證的性質,從而提高程序員的工作效率和工作質量。2007 年,他們又提出了利用控制流程圖的變體表示-驗證流圖的方法來實現自動恢復輸入驗證模型。基于該模型制定了兩個覆蓋標準來測試輸入驗證,并用這兩個標準來指導Web 應用程序中輸入驗證的結構測試。但這樣計算復雜度高,輸入驗證的測試準確率也不是很高。2008 年,他們為了更準確地測試輸入驗證,提出了一種從代碼中提取路徑劃分和輸入條件的方法,用于測試輸入驗證。這種方法對他們早期工作有了重大改進,理論和方法都有了顯著改進。該方法引入了一個屬性,從代碼中推斷出有效和無效的輸入條件,以及使用恢復的輸入條件來幫助黑盒輸入驗證測試的思想。此外,還對理論中使用的定義進行了簡化和改進,消除了早期方法中的冗余和低效。

2.3 Web應用攻擊檢測

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

3 結語

通過對Web 應用程序輸入驗證測試的相關研究,我們發現仍然存在許多面臨挑戰的問題,下面將闡述這些問題并對未來輸入驗證的研究方向進行了展望。

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

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

猜你喜歡
用戶檢測方法
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
小波變換在PCB缺陷檢測中的應用
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
捕魚
主站蜘蛛池模板: 国产69精品久久久久妇女| 玖玖精品视频在线观看| 秘书高跟黑色丝袜国产91在线| 老司机精品久久| 国产香蕉97碰碰视频VA碰碰看 | 欧美日韩一区二区在线免费观看| 欧美日韩中文国产| 波多野结衣视频一区二区| 成人午夜天| 搞黄网站免费观看| 久久国产毛片| 国产免费精彩视频| 成人a免费α片在线视频网站| 成人免费网站久久久| 四虎永久在线精品影院| 国产一区二区三区精品欧美日韩| 人人妻人人澡人人爽欧美一区| 美女免费黄网站| 精品91视频| 综合色88| 黄色福利在线| 国产成人综合亚洲欧洲色就色| 999国产精品永久免费视频精品久久| 秘书高跟黑色丝袜国产91在线 | 欧美黄色网站在线看| 国产极品美女在线观看| 亚洲国产天堂久久综合226114| 久久成人国产精品免费软件| 国产小视频免费观看| 午夜视频免费试看| 欧美区一区| 在线观看国产小视频| 熟女成人国产精品视频| 久久综合婷婷| 一级毛片在线免费视频| 国产内射在线观看| 亚洲精品动漫| 国产高清在线精品一区二区三区| 77777亚洲午夜久久多人| 日本在线亚洲| 免费人成黄页在线观看国产| 国产性生大片免费观看性欧美| 成年看免费观看视频拍拍| 国产永久免费视频m3u8| 国产精品女在线观看| 久久综合久久鬼| 国产国产人成免费视频77777| 91亚洲精品第一| 91网站国产| 免费观看无遮挡www的小视频| 四虎影视永久在线精品| 国产美女91视频| 久久人人妻人人爽人人卡片av| 91精品人妻互换| 伊人AV天堂| 日本黄色a视频| 九九热视频在线免费观看| 制服无码网站| 天天躁夜夜躁狠狠躁躁88| 婷婷六月综合网| 啊嗯不日本网站| 国产精品9| 亚洲天堂.com| 精品福利一区二区免费视频| 成人午夜视频网站| 国产一级在线观看www色| a亚洲视频| 国产成人精彩在线视频50| 91人妻日韩人妻无码专区精品| 欧美乱妇高清无乱码免费| 亚洲天堂久久新| 97人妻精品专区久久久久| 欧美成人精品一级在线观看| 亚洲视频黄| 五月天在线网站| 五月婷婷丁香色| 国产一级毛片在线| 国产欧美精品一区aⅴ影院| 2022国产无码在线| 久久久久久午夜精品| 亚洲av无码成人专区| 中文字幕无码制服中字|