水平、垂直權限問題(橫向越權與縱向越權)


參考:
水平權限漏洞以及解決方法
橫向越權與縱向越權

橫向越權與縱向越權

橫向越權:橫向越權指的是攻擊者嘗試訪問與他擁有相同權限的用戶的資源
縱向越權:縱向越權指的是一個低級別攻擊者嘗試訪問高級別用戶的資源

如何防止橫向越權漏洞:
可通過建立用戶和可操作資源的綁定關系,用戶對任何資源進行操作時,通過該綁定關系確保該資源是屬於該用戶所有的。
對請求中的關鍵參數進行間接映射,避免使用原始關鍵參數名,比如使用索引1代替id值123等

如何防止縱向越權漏洞:
建議使用基於角色訪問控制機制來防止縱向越權攻擊,即預先定義不同的權限角色,為每個角色分配不同的權限,每個用戶都屬於特定的角色,即擁有固定的權限,當用戶執行某個動作或產生某種行為時,通過用戶所在的角色判定該動作或者行為是否允許。


水平權限問題

攻擊者可以根據接口參數中的id加1等操作,來獲取其他用戶的權限或數據。

解決方法

  • 水平權限參數不要用自增值,用id加密、隨機數或GUID,但搜索引擎或攻擊者可以同樣用這個隨機數和連接去進行操作
  • web層檢查發起請求的用戶權限,比如從session信息中獲取
  • 數據庫表增加ownerId字段,增刪改查詢時加上其作為where語句條件(即每一個信息增加一個發布人的字段,修改的人必須與發布的人為同一個人才可以訪問)

垂直權限漏洞是指Web應用沒有做權限控制,或僅僅在菜單上做了權限控制,導致惡意用戶只要猜到了其他頁面的URL,就可以訪問或控制其他角色擁有的數據或頁面,達到權限提升的目的。
修復方案:
只需要對url資源進行權限驗證即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM