我想保護我的 rest api,我已經在使用 JWT 來驗證用戶。但是如果擁有 JWT 的用戶更改了 PUT 請求的負載怎么辦。例如,我有一個更新帖子的請求。我需要在正文中傳遞帖子 ID,如何防止用戶更改帖子 ID 并在郵遞員中再次發送?如果他有 jwt,他可以執行 put api 并更改他想要的任何帖子。我想從 JWT 中提取用戶 ID 并檢查帖子是否屬于他。但我從未見過這樣的邏輯。它存在嗎?在更新之前檢查要更新的物件是否屬于 JWT。
uj5u.com熱心網友回復:
您的推理是正確的:認為經過身份驗證的用戶不會惡意行事是天真的。在處理您的PUT路由的服務器端代碼中,您應該驗證有效負載并確保經過身份驗證的用戶具有正確的權限/權限來執行有效負載中的操作,然后才能代表用戶實際進行更改。
uj5u.com熱心網友回復:
我認為首先您需要驗證發送到服務器的有效負載,然后檢查用戶是否有權對該專案或物體執行 PUT 請求。在您的情況下獲取帖子,檢查它是否屬于用戶,如果它沒有回傳未經授權的回應(HTTP 狀態代碼 401 未授權),則檢查它是否屬于用戶您也可以在訪問函式邏輯之前在中間件中實作它檢查用戶是否有權限這樣做。
uj5u.com熱心網友回復:
常見的做法是在突變之前讀取資源。然后使用該資源的所有者 ID 從解碼的令牌中斷言用戶的 ID。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/420701.html
標籤:
上一篇:如何進行API呼叫。我是初學者
