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

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

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

橫向越權的狀況:

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

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

用戶先經過密碼提示問題並回答問題成功後,跳轉到重置密碼的頁面。該頁面下攻擊者在瀏覽器中查看到重置密碼的接口後,能夠輸入任意用戶名和密碼後提交,若是輸入的用戶名存在的話就會致使別的用戶被修改了密碼!一樣是普通用戶的權限,修改了其餘普通用戶的信息,這種功能狀況便是橫向越權。瀏覽器

爲了不以上橫向越權的行爲,經常使用辦法是在用戶回答密碼提示問題正確後,服務端隨機生成一個Token值返回,並給Token設置過時時間(如30分鐘),而後重置密碼的接口中要求前端傳遞該Token,便可確保是當前用戶修改本身的密碼了。spa

重置密碼的接口改成.net

localhost:8080/user/forget_reset_password.do?username=aaa&passwordNew=xxx&forgetToken=531ef4b4-9663-4e6d-9a20-fb56367446a5
相關文章
相關標籤/搜索