ホワイトリストルールまたはカスタムルールを設定する場合、ルールの一致条件を設定し、一致条件でWeb Application Firewall (WAF) が検出するリクエストの特性を指定する必要があります。 このトピックでは、一致条件で使用できるフィールドについて説明します。
マッチ条件とは何ですか?
一致条件は、WAFに一致させるリクエストの特性を指定します。 カスタム保護ポリシー、ホワイトリスト、またはIPアドレスブラックリストを設定するときは、一致条件を設定する必要があります。 詳細については、「カスタム保護ポリシーの設定」、「ホワイトリストの設定」、および「IPアドレスブラックリストの設定」をご参照ください。 リクエストが保護ルールで指定された一致条件と一致する場合、リクエストは保護ルールと一致します。 次に、WAFは、リクエストに対してルールで指定されたアクション (Block、JavaScript Validation、Monitorなど) を実行します。
サポートされている一致フィールド
次の表に、一致条件でサポートされている一致フィールドを示します。
マッチフィールド | サポートされる論理演算子 | 説明 |
URI |
| リクエストのURI (Uniform Resource Identifier) 。 URIは、要求されたリソースのパスを示す。 一致するコンテンツは、スラッシュ ( |
IP |
| リクエストを送信するクライアントのIPアドレス。 指定するIPアドレスは、次の要件を満たす必要があります。
|
リファラー |
| アクセス要求のリダイレクト元のソースページのURL。 |
ユーザーエージェント |
| リクエストを送信するクライアントに関するブラウザ情報。 情報には、ブラウザ、レンダリングエンジン、およびバージョンが含まれます。 |
クエリ文字列 |
| リクエスト内の照会文字列。 クエリ文字列は、URLの疑問符 (?) に続く部分です。 |
クッキー |
| アクセスリクエスト内のcookie情報。 |
コンテンツタイプ |
| レスポンスに指定されたHTTPコンテンツタイプ。 HTTPコンテンツタイプは、多目的インターネットメール拡張 (MIME) タイプとして知られている。 |
コンテンツ長 | より少ない値、等しい値、およびより大きい値 | レスポンスのバイト数。 有効な値: 0 ~ 8192 |
X-Forwarded-For |
| アクセス要求を開始するクライアントの送信元IPアドレス。 HTTP X-Forwarded-For (XFF) ヘッダーは、HTTPプロキシまたはServer Load Balancer (SLB) インスタンスによって転送されるリクエストの送信元IPアドレスを識別するために使用されます。 XFFヘッダーは、HTTPプロキシまたはSLBインスタンスによって転送されるリクエストにのみ含まれます。 |
ボディ |
| リクエスト本文。 ボディが8 KBを超えるリクエストはブロックされなくなります。 |
Http-メソッド |
| リクエスト方式。 有効な値: GET、POST、DELETE、PUT、OPTIONS、CONNECT、HEAD、TRACE、およびPATCH。 |
ヘッダー |
| リクエストヘッダー。 カスタムヘッダーがサポートされています。 |
URIパス |
| リクエストのURIパス。 |
クエリ文字列パラメーター |
| リクエストURLのリクエストパラメーター。 リクエストパラメーターは、URLの疑問符 (?) に続く部分です。 たとえば、 |
ホスト |
| リクエストされたドメイン名。 |
CookieName |
| cookieのキー。 たとえば、 |
BodyParameter |
| リクエストボディ内のパラメーターの名前。 たとえば、リクエスト本文に |
ファイル名 |
| リクエストパスの末尾にあるファイル名。 たとえば、 |
ファイル拡張子 |
| 要求されたファイルのファイル名拡張子。 例: |
論理演算子
論理演算子 | 説明 |
に属し、属していない | 一致フィールドが一致コンテンツに属しているかどうかをチェックします。 |
含まれ、含まない | 一致フィールドに一致コンテンツが含まれているかどうかを確認します。 |
リスト内とリスト内ではない | 一致フィールドがリストにあるかどうかをチェックします。 |
複数の値の1つを含み、値を含まない | 一致フィールドに一致コンテンツの値が1つ含まれているかどうかを確認します。 |
等しいと等しくない | 一致フィールドが一致コンテンツと等しいかどうかをチェックします。 |
複数の値の1つに等しく、任意の値に等しくない | 一致フィールドが一致コンテンツの1つの値に等しいかどうかをチェックします。 |
に等しい長さ、より大きい長さおよび長さより少しより | 一致フィールドの長さが一致コンテンツの長さと等しいか、大きいか、小さいかを確認します。 |
存在し、存在しない | matchフィールドが存在するかどうかをチェックします。 |
より少ない値、等しい値、およびより大きい値 | 一致フィールドの値が一致コンテンツの値より小さいか、等しいか、大きいかを確認します。 |
プレフィックスマッチとサフィックスマッチ | 一致フィールドのプレフィックスまたはサフィックスに一致コンテンツが含まれているかどうかを確認します。 |
正規表現の一致と正規表現の不一致 | フィールドの正規表現と一致し、フィールドの正規表現と一致しません。 |
Empty | 一致フィールドの内容が空かどうかをチェックします。 |
設定例
例1: [Match Field] をURIに、[Logical Operator] をContainsに、[Match Content] を
/login.php
に設定した場合、リクエストされたパスに/login.php
が含まれている場合、リクエストはルールに一致します。例2: [Match Field] をIPに、[Logical Operator] を [Belongs to] に、[Match Content] を192.168.0.1に設定した場合、IPアドレスが192.168.0.1のクライアントからリクエストが送信された場合、リクエストはルールに一致します。