Cloudflare WAF 式ビルダー
型付きの条件から Cloudflare Ruleset Engine のフィルター式を生成します。フィールドごとの演算子、文字列のクォート、関数形式の starts_with / ends_with を正しく扱います。
入力と主要な処理をブラウザ内で行い、その入力内容をQuickKitサーバーへ送信しない設計です。
式
1 行 1 条件
サマリー
| 使用した条件数 | — |
|---|
仕組みと使い方
限定された条件リストから Cloudflare Ruleset Engine のフィルター式を生成します。フィールド名は許可リストから選び、それぞれに型があるため、その型で使える演算子だけを提示します。文字列フィールドは eq / ne / contains / starts_with / ends_with / in、ip.src は eq / ne / in、数値フィールドは比較演算子、ssl は真偽値でそのまま、または not を付けて使います。エンジン側で間違えやすい 3 点を自動的に処理します。starts_with と ends_with は中置演算子ではなく関数で、starts_with(field, "value") と書きます。リストの所属は波括弧と空白区切りで書き、クォートするのは文字列値だけです。そのため ip.src in {203.0.113.0/24} にはクォートが付かず、http.request.method in {"GET" "POST"} には付きます。プレフィックスは集合の所属としてのみ意味を持つため、ip.src の eq と ne は単一アドレスを取り、CIDR は in でのみ受け付けます。文字列リテラルはダブルクォートとバックスラッシュでエスケープし、制御文字はエスケープせず拒否します。マッチ値に制御文字が入るのは、ほぼ貼り付けミスだからです。IP の値は検証しますが、入力したままの表記で出力します。ip.src.country は以前 ip.geoip.country という名前でした。古いルールや資料では今もその名前が使われています。意図的な制限として、正規表現の matches は提供しません。内容を確認せずに書いた正規表現は、見た目と異なる動作をするルールを作る最短経路だからです。アクション、レート制限、ルールセット上の配置もここでは決めません。Cloudflare へは何も送信せず、確認して貼り付けるためのテキストを生成するだけです。式は 4096 文字で打ち切ります。プラン側にも独自の上限がある場合があります。