簡體   English   中英

如何使用令牌身份驗證保護api端點

[英]How to secure api endpoints with token authentication

我的應用程序有一個后端服務器,通過REST api進行通信用戶身份驗證通過JSON Web令牌(JWT)處理-服務器簽名的令牌包含用戶名

假設某個用戶創建了一個ID為5的預訂,並擁有刪除它的特權。 他可以通過將DELETE請求發送到:

api.address/reservations/5

這是一個有效的請求。 但是有些人可以嘗試通過簡單地發送帶有另一個用有效令牌簽名的ID的DELETE請求來刪除任何其他保留。

在服務器端驗證用戶特權的最佳方法是什么? 到目前為止,我提供了這三種解決方案,但是其中任何一種都不正確

  1. 每次都檢查數據庫以進行特權檢查(可能很耗時)
  2. 在用戶令牌中包含所有資源特權(令牌可能會變得非常大)
  3. 僅允許已簽名的應用程序訪問rest api(可能會偽造密鑰。是否有100%安全的方法來做到這一點?)

提前致謝!

最簡單的方法是將用戶名或用戶ID(來自令牌)與預訂一起存儲在例如creator字段中。 然后,在您的DELETE方法中,檢查執行請求的用戶(還是從令牌開始)是創建者。

如果是這樣,請刪除保留並返回204 No content 如果不是,則返回403 Forbidden

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM