假設我們有一個用戶屬于特定租戶的 API。如果用戶嘗試為他們不屬于的租戶檢索資料,那么拋出 403 或 404 錯誤是否更合適/更安全?
從一個角度來看,403 是有意義的,因為該用戶無權訪問租戶。但是,從另一個角度來看,404 是有道理的,因為我們沒有公開他們請求的租戶存在。
哪種方法會被認為更好?我的直覺說 404
uj5u.com熱心網友回復:
您不應該跨租戶公開任何資訊。從一個租戶的角度來看,如果資源屬于另一個租戶,則該資源不存在 - 他們不應該能夠區分。換句話說,對于一個真正不存在的資源,對于分配給不同租戶(當前客戶端不存在)的資源,錯誤回應應該是相同的,如果租戶 ID 是請求的一部分,那么如果客戶未獲得授權,現有和不存在的租戶 ID 也應該產生相同的結果。
我知道這在某種程度上違背了 403 的目的,并且可以有簡單的理論反駁,從其他角度來看也非常有效,但不泄露任何資訊是最安全的選擇。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/438293.html
