Cache

記憶體控制機制

  • June 15, 2020

我試圖找出配置了“cache-control max-age=0, must revalidate”的伺服器和配置了“cache-control: no-cache, no-store”的伺服器之間的區別。因此,首先,據我了解,根本不記憶體敏感資訊,因為最大年齡為 0,並且客戶端每次都需要重新驗證以進行更改。但是我的一些前輩提到這仍然是脆弱的!我沒有看到我的掃描器得到那個標誌。所以,

  1. 我如何通過任何測試確認漏洞(如果有)?
  2. max-age 0 和 no-cache 有什麼區別?看起來他們是一樣的。後者與無商店一起更安全嗎?

HTTP(S) 記憶體在 RFC 7234 中定義;目前沒有任何替代文件,所以這是你應該參考的。

no-cache響應指令有點用詞不當。它不禁止記憶體文件。它允許記憶體文件,但它會立即被認為是陳舊的,並且在使用之前必須與源伺服器重新驗證。您會注意到,這與max-age=0, must-revalidate. 在這兩種情況下,內容都會被記憶體,如果伺服器向驗證請求發送 304 響應,則可以使用記憶體的文件。

要實際請求記憶體而不記憶體文件,您可以使用no-store. 在這種情況下,甚至沒有必要指定no-cache文件無論如何都不會被記憶體!但這可能比no-cache單獨慢得多,因為每次使用者訪問時都必須重新下載整個文件。

也許Cache-Control您用作範例的指令之一沒有包含no-store您的前輩所指的事實,儘管稱其為“漏洞”嚴重誇大了此事,以及它是否是安全問題(儘管這通常是隱私)問題取決於您提供的內容。

在您發送使用者特定資訊的大多數情況下,設置Cache-Control: private並允許使用者的瀏覽器記憶體數據就足夠了,而共享記憶體不會記憶體它。no-store除了私鑰、核發射程式碼、每 15 秒更改一次的數據等之外,我想不出真正需要 d 的東西……

引用自:https://serverfault.com/questions/1021429