快取設計要知道內容屬於誰
RFC 9111 區分 private 與 no-store,但標頭不會自動管理自行建立的記憶體快取。例子按租戶、用戶、資料範圍及政策版本分開存結果,不把憑證原文放入鍵。
| 請求 | 已有快取 | 決定 |
|---|---|---|
| 租戶 A,查閱人 U1 | 租戶 B 的結果 | 不能跨租戶重用 |
| U1 匯出權限已撤回 | 舊政策版本結果 | 核對現時權限;已撤權便拒絕匯出,並令相關快取失效 |
| 敏感回覆標為 no-store | 自行持久保存路徑 | 該路徑也須符合儲存政策 |
權限變更時用已有快取測試
先用已獲授權的假設用戶建立快取,撤回相關權限再重做請求。即使命中快取,已撤權的匯出亦不得回傳受限制資料。日誌用安全編號記決定,不把私人回覆複製進診斷資料。
只加 Cache-Control: private,便能阻止自己的程式把同一結果給不同用戶嗎?
查看參考答案
不能。它限制遵守規格的 HTTP 共用快取;應用程式仍須正確分範圍、核對存取及處理失效。