Cache
記憶體控制機制
我試圖找出配置了“cache-control max-age=0, must revalidate”的伺服器和配置了“cache-control: no-cache, no-store”的伺服器之間的區別。因此,首先,據我了解,根本不記憶體敏感資訊,因為最大年齡為 0,並且客戶端每次都需要重新驗證以進行更改。但是我的一些前輩提到這仍然是脆弱的!我沒有看到我的掃描器得到那個標誌。所以,
- 我如何通過任何測試確認漏洞(如果有)?
- 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 的東西……