【Web安全】越權操作——橫向越權與縱向越權


參考:http://blog.csdn.net/github_39104978/article/details/78265433

看了上面的文章,對越權操作的概念還是比較模糊,不明確實際場景。

橫向越權的情況:

用戶登錄模塊中,假設用戶在忘記密碼(未登錄)時,想要重置密碼。假設接口設計為傳參只用傳用戶名和新的密碼。

localhost:8080/user/forget_reset_password.do?username=aaa&passwordNew=xxx

用戶先通過密碼提示問題並回答問題成功后,跳轉到重置密碼的頁面。該頁面下攻擊者在瀏覽器中查看到重置密碼的接口后,可以輸入任意用戶名和密碼后提交,如果輸入的用戶名存在的話就會導致別的用戶被修改了密碼!同樣是普通用戶的權限,修改了其他普通用戶的信息,這種功能情況即是橫向越權。

為了避免以上橫向越權的行為,常用辦法是在用戶回答密碼提示問題正確后,服務端隨機生成一個Token值返回,並給Token設置過期時間(如30分鍾),然后重置密碼的接口中要求前端傳遞該Token,即可確保是當前用戶修改自己的密碼了。

重置密碼的接口改為

localhost:8080/user/forget_reset_password.do?username=aaa&passwordNew=xxx&forgetToken=531ef4b4-9663-4e6d-9a20-fb56367446a5

 


免責聲明!

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



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