Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

Web キャッシュポイズニングを防ぐ

最終更新 Markdown で表示Agent セットアップ

キャッシュポイズニング攻撃は、HTTP リクエストを使い、正規のリクエストと同じキャッシュキーを持つ有害なリソースをオリジン Web サーバーに返させます。その結果、汚染されたリソースがキャッシュされ、ほかのユーザーにも配信されます。

Cloudflare のような CDN(Content Delivery Network)は、キャッシュキーで新しいリクエストとキャッシュ済みリソースを比較します。その結果、キャッシュから配信するか、オリジン Web サーバーへ直接取りに行くかを決めます。

キャッシュポイズニングについて学ぶ

キャッシュポイズニングのリスクと脆弱性を深く知るには、次の資料を参照してください。

本当に静的なファイルだけをキャッシュする

オリジン Web サーバーのキャッシュ設定を確認し、ユーザー入力に依存しない静的ファイルだけをキャッシュしていることを確かめます。Cloudflare のキャッシュについて詳しくは、次を参照してください。

HTTP ヘッダーのデータを信頼しない

攻撃者は HTTP ヘッダーを悪用し、キャッシュされた応答に悪意のあるコンテンツを注入できます。たとえば、信頼できないヘッダー値を応答ボディにそのまま出すと、攻撃者はキャッシュ経由でクロスサイトスクリプティング(XSS)を実行できます。このリスクを下げるには、次を守ります。

  • キャッシュキー に含まれない HTTP ヘッダーの値に依存しないでください。
  • 信頼できないヘッダー値を応答ボディに含めないでください。

GET リクエストのボディを信頼しない

Cloudflare は GET リクエストボディの内容をキャッシュしますが、キャッシュキーには含めません。GET リクエストボディは信頼できないものとして扱い、応答内容を変えてはいけません。GET ボディで応答内容が変わる場合は、キャッシュをバイパスするか、POST リクエストの利用を検討してください。

Web セキュリティアドバイザリを監視する

インターネット上のセキュリティ脅威を把握するため、Web セキュリティアドバイザリを定期的に確認することを推奨します。よく参照されるアドバイザリには次があります。

役に立ちましたか?