我正在使用 spring boot 和 thymeleaf 撰寫一個非常簡單的電子商務應用程式,我發現用戶可以通過更改 URL 中的 id 來查看任何訂單。例如:用戶下了一個 ID 為 5 的訂單,所以他可以在 url: /order/details/5 上看到他的訂單但是如果用戶將 url 更改為 fe /order/details/4 他可以看到他應該看到的訂單詳情看不見。有沒有一種簡單的方法可以用 Spring 安全性阻止它?
uj5u.com熱心網友回復:
首先,讓我們擺脫一些術語:
身份驗證- 證明某人身份的行為。例如,您使用用戶名登錄,但您需要密碼來證明是您本人。
授權- 是授予用戶執行操作權限的行為。
在閱讀Spring Security Documentation時,這些術語很重要。我假設您已經對用戶進行了身份驗證,現在您想要授權他們查看,例如,他們自己的訂單,而不是其他用戶的訂單。
但我猜訂單存盤在資料庫中。因此,您可能必須在服務層中進行身份驗證。這意味著 Spring Security 負責身份驗證,并且您擁有可用的用戶。當您獲取一些訂單時,您還需要確保經過身份驗證的用戶是所有者。
要考慮的另一件事是使用 UUID 作為主鍵。這使得猜測 ID 變得更加困難,但這絕對不能替代授權!嚴重地。它不是。默默無聞的安全性被打破了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/505291.html
