メインコンテンツまでスキップ

8. セキュリティに関する考慮事項

本セクションは、開発者、情報提供者、およびユーザーに対して、HTTP キャッシュに固有の既知のセキュリティ上の懸念を伝えることを目的としています。より一般的なセキュリティ上の考慮事項は、HTTP メッセージング [RFC7230] およびセマンティクス [RFC7231] で扱われています。

キャッシュは追加の潜在的な脆弱性を露呈します。キャッシュの内容は悪意のある悪用にとって魅力的な標的だからです。キャッシュの内容は HTTP リクエストが完了した後も残るため、キャッシュへの攻撃は、ユーザーが情報はネットワークから削除されたと信じたずっと後になって、その情報を明らかにする可能性があります。したがって、キャッシュの内容は機密情報として保護する必要があります。

特に、さまざまな攻撃が共有キャッシュに格納されることによって増幅される可能性があります。このような「キャッシュポイズニング」攻撃は、キャッシュを利用して悪意のあるペイロードを多数のクライアントに配布するものであり、攻撃者が実装上の欠陥、昇格した権限、その他の手法を用いてそのような応答をキャッシュに挿入できる場合に特に有効です。キャッシュポイズニングの一般的な攻撃手法の 1 つは、プロキシとユーザーエージェントにおけるメッセージ解析の差異を悪用することです。関連する要件は [RFC7230] のセクション 3.3.3 を参照してください。

同様に、実装上の欠陥 (およびキャッシュ操作の誤解) は、私的なものであると考えられていた機密情報 (例えば認証資格情報) のキャッシュにつながり、それを権限のない第三者に暴露する可能性があります。

さらに、キャッシュの使用そのものがプライバシー上の懸念を引き起こすことがあります。例えば、2 人のユーザーがキャッシュを共有しており、最初のユーザーがあるサイトを閲覧した場合、キャッシュのおかげでそのサイトのリソースがより速く読み込まれるため、2 人目のユーザーは相手がそのサイトを訪れたことを検知できる可能性があります。

Set-Cookie 応答ヘッダーフィールド [RFC6265] はキャッシュを妨げないことに注意してください。Set-Cookie ヘッダーフィールドを持つキャッシュ可能な応答は、キャッシュへの後続のリクエストを満たすために使用でき (しばしば使用され) ます。これらの応答のキャッシュを制御したいサーバーは、適切な Cache-Control 応答ヘッダーフィールドを発行することが推奨されます。