安全中的權限問題主要包括未授權訪問和越權兩大類。
未授權訪問是指缺乏對用戶登錄的有效校驗。
越權是指系統缺乏對用戶提交請求合法性的有效校驗。
一個典型的未授權訪問的例子:“在非登錄狀態下,僞造用戶名參數,可以直接訪問API並獲取或提交數據”。查看個人信息時,POST提交了參數userID=10201,修改該參數,如改爲userID=10202,就可以查看其他用戶的信息,這是一個最常見的越權問題。
權限測試是測試系統提供給用戶的接口是否具有相應的權限問題(不能多不能少),這些問題是否可能被惡意攻擊者利用。
權限測試中常見的測試點,包括
1)接口權限最小化
2)每次調用接口將token作爲API參數校驗
3)用戶相應API請求是否合法性
4)是否使用靜態API密鑰,是的話,要強加密後再傳輸
5)爲避免重放攻擊,建議參數中包括時間戳和隨機數等
6)沒有API密鑰,可以通過訪問權限控制
權限測試,針對B/S、C/S 架構,包括客戶端和服務端的權限測試。
客戶端針對不同用戶不同角色(不同菜單不同按鈕)不同領域(不同省份不同資源池不同業務)不同VIP(普通用戶、會員、超級會員)的權限都不一樣。
服務端針對不同用戶不同廠商(金融行業不同銀行)不同接口(南向、北向、東向、西向)不同領域(不同省份不同資源池不同業務)的權限都不一樣。
更多例子,Linux下文件的讀寫,查看和執行,以及用戶組和用戶的權限。
更多學習資料見
摘取自劉琛梅老師的《測試架構師修煉之道:從測試工程師到測試架構師 第2版》