1.What——什么是橫向越權?
橫向越權:橫向越權指的是攻擊者嘗試訪問與他擁有相同權限的用戶的資源
縱向越權:縱向越權指的是一個低級別攻擊者嘗試訪問高級別用戶的資源
例:用戶A無法訪問到北京區域的用戶詳情,用戶A沒有重置北京區域用戶密碼的權限。
但是通過
獲取到重置密碼的接口url和對應用戶的userid,用他的token執行重置密碼的接口。重置成功!!!???

2.Why——出現原因是什么?
問題出現根本原因是:
Java后端沒有對相應的接口做相應的防止橫向越權措施。
3.How——怎么找出有橫向越權問題的接口?
測試過程:
1、與產品溝通,整理出所有用戶權限相關的重要接口
2、使用帶有修改權限的A用戶的token跑一遍
3、使用未帶有權限的B用戶的token跑一遍
具體操作如下(
使用jmeter):
1、新建一個
HTTP信息頭管理器,將
請求頭必須變量寫入(token)
2、將整理的所有重要接口分別新建
http請求並寫入
3、使用帶有權限的token跑所有接口,全部可以執行
4、使用未帶有權限的token跑所有接口,全部不可以執行
5、找到有橫向越權問題的接口,整理並反饋給開發


身為一個測試人員,在新需求有新增接口的情況下,思考的
不僅是新增功能的實現,還有接口性能和安全,如果提前測試,就可以減少更多線上問題反饋。
例:新增一個刪除資產功能
功能:能正常刪除、批量刪除,數據庫,存儲對應資產均被刪除
性能:批量100,200,300等梯度刪除
安全:使用一個賬號的token執行刪除另一個賬號的資產是否成功
出現問題:使用一個賬號的token執行刪除另一個賬號的資產成功
解決方法,
前端在執行刪除操作時傳入userid,后端通過token和userid作比對