軟體測試知識儲備:關於「登入安全」的基礎知識,你瞭解多少?
作為測試,給我們一個關鍵詞“登入”,我們可能想到的用例設計更多的是什麼使用者名稱、密碼校驗是否合法、是否為空、是否正確等等之類的場景。 加我VX:atstudy-js 回覆“測試”,進入 自動化測試學習交流群~~
但在如今資訊化的時代,“登入安全”已經是一個很熱門且普遍的的話題了,今天給大家簡單分享一下個人瞭解到的關於「登入安全」基礎知識。
概念普及
在瞭解登入安全之前,給大家普及兩個基礎概念:“撞庫”和“防撞庫”。
百度到的原文介紹是:“撞庫是黑客通過收集網際網路已洩露的使用者和密碼資訊,生成對應的字典表,嘗試批量登陸其他網站後,得到一系列可以登入的使用者。並且很多使用者在不同網站使用的是相同的帳號密碼,因此黑客可以通過獲取使用者在A網站的賬戶從而嘗試登入B網址,這就可以理解為撞庫攻擊。”
換個角度大家可以這樣理解,很多使用者的賬號和密碼彙總在一起,形成了一個“庫”,很多不法分子為了盜取到使用者的賬號資訊,會絞盡腦汁通過各式各樣的手段去不斷嘗試獲取使用者的真實賬號資訊。這個“不斷的嘗試獲取”的動作過程,我們可以稱之為“撞”。
有不法分子的“撞”,當然就有了正式使者的“防”,為了提高使用者的賬號資訊保安,程式設計師(正義使者)在設計登入時會通過一系列的手段來一層一層的保護使用者的賬號資訊保安。
常見的登入安全問題
這邊給大家普及下常見的可判定為賬號可能存在被盜取的場景:
1、同一個密碼&不同賬號,出現錯誤多次;
2、同一個賬號&不同密碼,出現錯誤多次;
3、頻繁獲取簡訊驗證碼。
以上的場景存在兩個共性,分別是“短時間範圍內” and“同一個裝置”,因為黑客或者其他不法分子,在不斷嘗試獲取使用者賬號密碼資訊時基本是在同一個裝置且短時間內高頻嘗試不同的賬號密碼組合。
解決方案
基於上面的常見登入安全問題的共性(“短時間範圍內” and“同一個裝置”),有其對應的明確的解決方案:
1、通過IP限制同一個使用者的簡訊的請求上限;
2、通過IP限制同一個使用者密碼錯誤次數上限;
3、通過賬號限制同一個使用者密碼錯誤的上限。
測試用例設計
作為一個專業的測試人員,在進行用例設計之前,除了關注UI設計稿、需求文件外,還可以關注開發提供的技術文件,在條件允許下能夠進一步的瞭解到開發對應的基礎實現原理,在一定程度上能夠幫助我們提高自己設計的測試用例的覆蓋度,以便於我們能夠更全面、更深入的進行測試,從而提高我們產品的質量。
從開發的技術文件上我們不需要了解很深的技術原理,只需要瞭解以下幾個問題:
1、通過什麼控制登入風險?
2、使用者的登入行為被判定為風險後,會有對應的什麼措施?
3、使用者的登入行為被判定為風險後,什麼能恢復使用?
4、有沒有可申訴的途徑?
最後根據上面這個思路補充對應的功能測試用例即可,這邊簡單羅列部分測試用例:
另外,在補充業務測試用例的同時,同步可以關注對應的介面請求規範,為了儘可能獲取到使用者的真實IP,介面在設計時可能會引用HTTP請求頭規範,要求下游在請求時透傳X_FORWARDED_FOR,以此來區分真實的使用者IP。
這個可以作為一個介面測試關注點,減少由於IP上報錯誤而引起風險誤判,導致正常使用者無法正常使用產品功能的情況。
從HTTP請求中獲得使用者的真實IP地址有兩個方法,一個是從Remote Address中獲得,另一個是從X-Forward-For中獲得,但他們的安全性和使用場景各有不同,想要了解更多知識大家可以根據關鍵字去自行擴充套件~
每天學習一點點,遲早能從菜鳥變大佬~
最後:
可以到我的個人V:atstudy-js,可以免費領取一份10G軟體測試工程師面試寶典文件資料。以及相對應的視訊學習教程免費分享!其中包括了有基礎知識、Linux必備、Mysql資料庫、抓包工具、介面測試工具、測試進階-Python程式設計、Web自動化測試、APP自動化測試、介面自動化測試、測試高階持續整合、測試架構開發測試框架、效能測試等。
這些測試資料,對於做【軟體測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31407649/viewspace-2904365/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於Linux知識你瞭解多少呢?Linux
- 軟體測試基礎知識
- 軟體效能測試基礎知識分享
- 軟體測試--資料庫基礎知識資料庫
- 【入門知識】關於Linux系統和Windows系統你瞭解多少?LinuxWindows
- 效能測試必備基礎知識(二)
- 軟體測試都需要學哪些基礎知識
- 效能測試基礎知識體系
- 【1】測試基礎知識
- 軟體工程師必須知道20個知識點你瞭解多少?軟體工程工程師
- 滲透測試基礎知識---nginx安全配置Nginx
- 這些關於WebSocket的知識,你知道多少?Web
- 前端關於單點登入的知識前端
- Web測試基礎-Html基礎知識WebHTML
- 介面測試之基礎知識
- 介面測試--基礎小知識
- 測試開發:你所需要掌握瞭解的效能測試知識
- 知識儲備
- 網站安全相關的基礎知識網站
- 網路營銷的基礎知識瞭解
- 關於知識付費原始碼,你知道多少?原始碼
- 關於mysql基礎知識的介紹MySql
- 軟體安全測試知識分享,安全測試報告如何收費測試報告
- Android 端測試基礎知識分享,附帶 mac 軟體分享AndroidMac
- Flutter環境配置 + 基礎知識瞭解Flutter
- Python 必備面試基礎知識-3Python面試
- Python 面試必備基礎知識-1Python面試
- Python 基礎(一):入門必備知識Python
- OpenStack必備基礎知識
- 軟體測試相關理論知識有哪些?
- 軟體測試之理論知識_1.3
- [譯]前端基礎知識儲備——Promise/A+規範前端Promise
- 關於Linux系統,這些知識你都瞭解嗎?Linux
- 軟體測試學習教程—軟體測試基本知識
- 網路安全基礎知識
- 軟體測試需要具備的知識體系(個人總結)
- Android小知識-Java多執行緒的基礎知識瞭解下AndroidJava執行緒
- 滲透測試基礎知識----MySQL 配置MySql