フィルターとは、次のような条件を表す方法です。
if (traffic matches certain criteria) then...フィルターには式が含まれ、Cloudflare を通過するトラフィックに対して評価すると true または false を返します。
フィルター式は人と機械の両方で読めます。検出・対処したいトラフィックに正確に一致するよう、複雑なロジックを組み立てられます。
フィルターオブジェクトは、通常次のような形です。
{
"id": "<FILTER_ID>",
"expression": "(http.request.uri.path ~ \"^.*wp-login.php$\" or http.request.uri.path ~ \"^.*xmlrpc.php$\") and ip.src ne 93.184.216.34",
"description": "WordPress login paths via the login page or mobile RPC endpoint"
}この例のフィルターで指定している式は次のとおりです。
(http.request.uri.path ~ "^.*wp-login.php$" or http.request.uri.path ~ "^.*xmlrpc.php$") and ip.src ne 93.184.216.34このフィルター式は (this or that) and not this の構造で、次の目的です。
- ブルートフォースのパスワード攻撃を受けやすい、2 つの WordPress パスを捉え、
- IP アドレス
93.184.216.34からのトラフィックを除外します。
この IP がオフィスのものとします。この式は、オフィスネットワーク外から WordPress のログインへアクセスするのを(ファイアウォールルールで)ブロックするフィルターの例です。
ルール式の詳細は、Rules language ドキュメントの Expressions を参照してください。