Skip to content

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

Cache Deception Armor

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

Web Cache Deception 攻撃

Web Cache Deception 攻撃は、静的アセットを指しているように見える URL へユーザーを誘導します。実際には、オリジンから動的でパーソナライズされたコンテンツが返ります。

この攻撃は、オリジンが存在しないパスへのリクエストを親パスと同じものとして扱うときに成立します。たとえば http://www.example.com/newsfeed が認証済みユーザーごとに異なる内容を返す動的ページで、オリジンが /newsfeed/foo.jpg にも同じ応答を返す場合です。パスが .jpg で終わるため、Cloudflare はデフォルトでその応答をキャッシュします。攻撃者が同じ URL にアクセスすると、ユーザーのパーソナライズされたコンテンツのキャッシュコピーを受け取れます。

Cache Deception Armor による攻撃の防止

キャッシュルールを作成 すると、Web Cache Deception 攻撃からユーザーを守れます。このルールでは静的アセットのキャッシュを続けつつ、URL の拡張子と返された Content-Type が一致するかを確認します。

上記のニュースフィードの例では、http://www.example.com/newsfeed がウェブページを出力するスクリプトなら、Content-Typetext/html です。一方、http://www.example.com/newsfeed/foo.jpgContent-Typeimage/jpeg である想定です。Web Cache Deception 攻撃につながる不一致が見つかった場合、Cloudflare はその応答をキャッシュしません。

例外

  • 返された Content-Typeapplication/octet-stream の場合、拡張子は問いません。このタイプは通常、ブラウザーに表示ではなく保存を指示する信号だからです。
  • Cloudflare は、.jpgimage/webp として、.gifvideo/webm として配信するケースなど、攻撃になりにくい組み合わせを許可します。
  • Cache Deception Armor は Origin Cache Control に依存します。オリジンからの Cache-Control ヘッダーや Edge Cache TTL の Cache Rule が、この保護を上書きすることがあります。

Cache Deception Armor を有効にする

Cache Deception Armor を有効にするには、まず キャッシュルール を作成します。次の手順に従ってください。

  1. Cloudflare ダッシュボードで Cache Rules ページを開きます。

    Cache Rules を開く ↗
  2. Create rule を選択します。

  3. When incoming requests matchルール式 を定義します。

  4. ThenCache eligibilityEligible for cache を選択します。

  5. ルールに Cache Key 設定を追加し、Cache deception armor をオンにします。

  6. 保存してデプロイするには Deploy を選択します。まだデプロイしない場合は Save as Draft を選択します。

役に立ちましたか?