Cloudflare は、リクエスト処理の機能を フェーズ 単位で評価します。単独では正しいルールでも、別の製品がすでにリクエストを変更または終了していると、動きが変わることがあります。
Cloudflare は カスタムルール より先に URL Rewrite Rules を適用します。
Transform Rule が /public-login を /internal/login に書き換えると、以降の WAF フェーズは書き換え後のパスを評価します。
つまり、次のようになります。
/public-loginに一致するカスタムルールは、書き換え後に発火しないことがあります。/internal/loginに一致するカスタムルールは、訪問者が/public-loginをリクエストしていても発火することがあります。
カスタムルールを切り分けるときは、WAF 評価の前に Rewrite Rule が URL を変えていないかを確認します。Trace を使うと、例のリクエストに対するルールの評価順を確認できます。
詳しくは、フェーズ一覧 のリクエスト実行順を参照してください。
IP Access rules は、WAF カスタムルールより先に実行されます。
Allow アクションの IP Access rule がリクエストに一致すると、Cloudflare はそのリクエストに対して、以降のカスタムルールを評価しません。
- 式が正しくても、特定の IP アドレスに対してカスタムルールが「発火しない」ように見えることがあります。
- 送信元 IP アドレスを早すぎる段階で許可すると、ほかのアプリセキュリティの処理(カスタムルール)が動かなくなります。
リクエストが想定外にカスタムルールをバイパスしている場合は、まず一致する IP Access rules を確認します。
IP Access rules の Allow アクションは、WAF カスタムルールで使える Skip アクションとは動きが異なります。
IP Access rules の Allow アクションは、WAF カスタムルール、レート制限ルール、WAF マネージドルール(国レベルのエントリを除く)、非推奨のファイアウォールルールをバイパスします。一致は Security Events に表示されません。許可されたリクエストは、ログやトラッキング用のルールを含め、WAF カスタムルールに到達しません。
WAF カスタムルールの Skip アクションは、WAF マネージドルールなど、特定のアプリケーションセキュリティ製品またはコンポーネントを選択的にスキップするよう Cloudflare に指示します。Skip アクション付きカスタムルールの設定によっては、ほかのセキュリティ製品はリクエストを評価し、ブロックすることがあります。
WAF カスタムルールに Allow アクションはありません。一致したリクエストが何をバイパスするかを制御するには、Skip アクションを使い、スキップする製品またはフェーズを選びます。
意図した動きになるよう、設定(IP Access rules と Skip アクション付きカスタムルール)を確認します。
WAF マネージドルールセット の特定ルールが、許可したいリクエストをブロックしている場合は、WAF マネージドルール全体をスキップするのではなく、マネージドルールの例外 を作成して、特定のリクエストに対して特定のマネージドルールまたはルールセットをスキップできます。
Page Rules はレガシーの動作であり、現行の Rules 製品と完全には一致しません。
混在した設定では、次のようなことが起きることがあります。
- 書き換えがカスタムルールとマネージドルールに影響する
- 同じパスを対象に見える Page Rule と現行ルールで、結果が異なる
可能であれば、古い Page Rules の動作を現行の Rules 製品へ移行し、リクエストを 1 つのモデルで評価するようにします。
WAF の判定が正しく見えない場合は、次を確認します。
- 先に実行されたリクエストの書き換えがないか確認します。
- 一致する IP Access rules がないか確認します。
- リクエストがカスタムルールのフェーズで止まる想定だったか、以降のフェーズをスキップする想定だったかを確認します。
- カスタムルールに一致したあとでも、マネージドルールが実行されていないかを確認します。
- 利用できる場合は Trace で、フェーズごとの実際の結果を確認します。