キャッシングを防ぐために以下のヘッダーを使用するアプリケーションに出くわしました。
cache-control: no-store, no-cache, must-revalidate, proxy-revalidate
Expires: 0
Pragma: no-cache
標準に従って、このHTTPヘッダーではデータをキャッシュしないでください。アドレスバーにabout:cache
を付けてFirefoxをチェックインしたところ、ブラウザのメモリにキャッシュされたデータが見つかりました。ただし、ディスクにはキャッシュされませんでした。
これはセキュリティの問題として扱うことができますか?はいの場合、データがブラウザのメモリにキャッシュされるのを防ぐための緩和策は何ですか?これはCache-control: Private
を使用して軽減できますか?
ブラウザが何もキャッシュしないようにすることは本当に難しいです。プライベートモードであっても、ブラウザはキャッシュ、ローカルデータベース、ディスク上のファイルを使用してリクエストを高速化します。すべてのプライベートモードは、セッションの最後になくなることを約束します。
開発者ツールを開いてキャッシュを無効にしても、すべてのキャッシュが無効になるわけではありません(AngularJSは問題をキャッシュすることがわかっています)。