軟件測試知識儲備:關(guān)于「登錄安全」的基礎(chǔ)知識,你了解多少?
?作為測試,給我們一個關(guān)鍵詞“登錄”,我們可能想到的用例設(shè)計更多的是什么用戶名、密碼校驗是否合法、是否為空、是否正確等等之類的場景。
但在如今信息化的時代,“登錄安全”已經(jīng)是一個很熱門且普遍的的話題了,今天給大家簡單分享一下個人了解到的關(guān)于「登錄安全」基礎(chǔ)知識。
概念普及
在了解登錄安全之前,給大家普及兩個基礎(chǔ)概念:“撞庫”和“防撞庫”。
百度到的原文介紹是:“撞庫是黑客通過收集互聯(lián)網(wǎng)已泄露的用戶和密碼信息,生成對應(yīng)的字典表,嘗試批量登陸其他網(wǎng)站后,得到一系列可以登錄的用戶。并且很多用戶在不同網(wǎng)站使用的是相同的帳號密碼,因此黑客可以通過獲取用戶在A網(wǎng)站的賬戶從而嘗試登錄B網(wǎng)址,這就可以理解為撞庫攻擊?!?/p>
換個角度大家可以這樣理解,很多用戶的賬號和密碼匯總在一起,形成了一個“庫”,很多不法分子為了盜取到用戶的賬號信息,會絞盡腦汁通過各式各樣的手段去不斷嘗試獲取用戶的真實賬號信息。這個“不斷的嘗試獲取”的動作過程,我們可以稱之為“撞”。
有不法分子的“撞”,當(dāng)然就有了正式使者的“防”,為了提高用戶的賬號信息安全,程序員(正義使者)在設(shè)計登錄時會通過一系列的手段來一層一層的保護用戶的賬號信息安全。
常見的登錄安全問題
這邊給大家普及下常見的可判定為賬號可能存在被盜取的場景:
- 同一個密碼&不同賬號,出現(xiàn)錯誤多次;
- 同一個賬號&不同密碼,出現(xiàn)錯誤多次;
- 頻繁獲取短信驗證碼。
以上的場景存在兩個共性,分別是“短時間范圍內(nèi)” and“同一個設(shè)備”,因為黑客或者其他不法分子,在不斷嘗試獲取用戶賬號密碼信息時基本是在同一個設(shè)備且短時間內(nèi)高頻嘗試不同的賬號密碼組合。
解決方案
基于上面的常見登錄安全問題的共性(“短時間范圍內(nèi)” and“同一個設(shè)備”),有其對應(yīng)的明確的解決方案:
- 通過IP限制同一個用戶的短信的請求上限;
- 通過IP限制同一個用戶密碼錯誤次數(shù)上限;
- 通過賬號限制同一個用戶密碼錯誤的上限。
測試用例設(shè)計
作為一個專業(yè)的測試人員,在進(jìn)行用例設(shè)計之前,除了關(guān)注UI設(shè)計稿、需求文檔外,還可以關(guān)注開發(fā)提供的技術(shù)文檔,在條件允許下能夠進(jìn)一步的了解到開發(fā)對應(yīng)的基礎(chǔ)實現(xiàn)原理,在一定程度上能夠幫助我們提高自己設(shè)計的測試用例的覆蓋度,以便于我們能夠更全面、更深入的進(jìn)行測試,從而提高我們產(chǎn)品的質(zhì)量。
從開發(fā)的技術(shù)文檔上我們不需要了解很深的技術(shù)原理,只需要了解以下幾個問題:
- 通過什么控制登錄風(fēng)險?
- 用戶的登錄行為被判定為風(fēng)險后,會有對應(yīng)的什么措施?
- 用戶的登錄行為被判定為風(fēng)險后,什么能恢復(fù)使用?
- 有沒有可申訴的途徑?
最后根據(jù)上面這個思路補充對應(yīng)的功能測試用例即可,這邊簡單羅列部分測試用例:
另外,在補充業(yè)務(wù)測試用例的同時,同步可以關(guān)注對應(yīng)的接口請求規(guī)范,為了盡可能獲取到用戶的真實IP,接口在設(shè)計時可能會引用HTTP請求頭規(guī)范,要求下游在請求時透傳X_FORWARDED_FOR,以此來區(qū)分真實的用戶IP。
這個可以作為一個接口測試關(guān)注點,減少由于IP上報錯誤而引起風(fēng)險誤判,導(dǎo)致正常用戶無法正常使用產(chǎn)品功能的情況。
從HTTP請求中獲得用戶的真實IP地址有兩個方法,一個是從Remote Address中獲得,另一個是從X-Forward-For中獲得,但他們的安全性和使用場景各有不同,想要了解更多知識大家可以根據(jù)關(guān)鍵字去自行擴展?。