ホワイトリストまたはカスタムルールを設定する際、検査対象のリクエストを特定するために一致条件を定義します。各一致条件は、マッチフィールドと論理演算子で構成されます。
一致条件とは
一致条件は、DCDN WAF がエッジで検査するリクエストの特性を定義します。カスタム保護ポリシー、ホワイトリスト、またはIP アドレスブラックリストを設定する場合、1 つ以上の 一致条件 を使用してルールの基準を定義します。受信リクエストが一致条件を満たすと、ルールがトリガーされます。その後、WAF は、Block、JavaScript Validation、Monitor など、指定されたルールアクションをリクエストに適用します。
サポートされているマッチフィールド
次の表に、利用可能なマッチフィールドを示します。
|
マッチフィールド |
論理演算子 |
説明 |
|
URI |
|
リクエストの Uniform Resource Identifier (URI) であり、リソースパスを指定します。値はスラッシュ ( |
|
IP |
|
リクエスト元クライアントの送信元 IP アドレスです。 値は次の要件を満たす必要があります。
|
|
Referer |
|
リクエストの送信元ページの URL です。 |
|
User-Agent |
|
クライアントのブラウザーに関する情報 (ID、レンダリングエンジン、バージョンなど) です。 |
|
クエリ文字列 |
|
URL の疑問符 (?) に続く部分です。 |
|
Cookie |
|
リクエスト内の Cookie 情報です。 |
|
Content-Type |
|
Content-Type ヘッダーで指定された、リクエストボディのメディアタイプです。MIME タイプとも呼ばれます。 |
|
Content-Length |
次より小さい、次と等しい、次より大きい |
リクエストボディのサイズ (バイト単位) です。有効値:0~8192。 |
|
X-Forwarded-For |
|
トラフィックが HTTP プロキシまたはロードバランサーを通過するときに、X-Forwarded-For (XFF) リクエストヘッダーによって識別される、元のクライアント IP アドレスです。このヘッダーは、リクエストがプロキシまたはロードバランサー経由でルーティングされる場合にのみ存在します。 |
|
リクエストボディ |
|
リクエストボディのコンテンツです。WAF は 8 KB を超えるリクエストボディを検査しません。 |
|
HTTP メソッド |
|
リクエストで使用されるメソッドです。サポートされているメソッドには、GET、POST、DELETE、PUT、OPTIONS、CONNECT、HEAD、TRACE、PATCH があります。 |
|
ヘッダー |
|
リクエストヘッダーです。カスタムヘッダーフィールドがサポートされています。 |
|
URI パス |
|
リクエスト URI のパスコンポーネントです。 |
|
クエリ文字列パラメーター |
|
クエリ文字列内のパラメーターです。たとえば、URL |
|
ホスト |
|
リクエストされているドメイン名です。 |
|
Cookie 名 |
|
Cookie の名前 (キー) です。たとえば、Cookie |
|
ボディパラメーター |
|
リクエストボディ内のパラメーターの名前です。たとえば、リクエストボディに文字列 |
|
ファイル名 |
|
URI パスの末尾にあるファイルの名前です。たとえば、 |
|
拡張子 |
|
リクエストされたファイルの拡張子です ( |
論理演算子
|
論理演算子 |
説明 |
|
次である、次ではない |
フィールド値が、指定された IP アドレスまたは CIDR ブロックであるか、そうでないかを確認します。 |
|
次を含む、次を含まない |
フィールド値が、指定された部分文字列を含むか、含まないかを確認します。 |
|
次のいずれかである、次のいずれでもない |
フィールド値が、指定された IP アドレスまたは CIDR ブロックのリストに含まれるか、含まれないかを確認します。 |
|
次のいずれかを含む、次のいずれも含まない |
フィールド値が、指定された部分文字列のいずれかを含むか、指定された部分文字列のいずれも含まないかを確認します。 |
|
次と等しい、次と等しくない |
フィールド値が、指定された値と完全に一致するか、一致しないかを確認します。 |
|
次のいずれかと等しい、次のいずれとも等しくない |
フィールド値が、指定された値のいずれかと完全に一致するか、指定された値のいずれとも一致しないかを確認します。 |
|
長さが次と等しい、長さが次より大きい、長さが次より小さい |
フィールド値の長さ (バイト単位) を、指定された数値と比較します。 |
|
存在する、存在しない |
指定されたフィールドがリクエストに存在するか、存在しないかを確認します。 |
|
次より小さい、次と等しい、次より大きい |
フィールドの数値を、指定された数値と比較します。 |
|
次で始まる、次で終わる |
フィールド値が、指定された部分文字列で始まるか、終わるかを確認します。 |
|
正規表現に一致、正規表現に不一致 |
フィールド値が、指定された正規表現 (regex) と一致するか、一致しないかを確認します。 |
|
空である |
フィールド値が空であるかどうかを確認します。 |
設定例
-
例 1: マッチフィールドを
URIに、論理演算子をContainsに、マッチ内容を/login.phpに設定します。このルールは、リクエストの URI に/login.phpが含まれている場合にトリガーされます。 -
例 2: [一致フィールド] を
IPに、[論理演算子] をIsに、および [一致内容] を 192.168.0.1 に設定します。 このルールは、IP アドレス 192.168.0.1 からのリクエストに対してトリガーされます。