AND規則陳述式 - AWS WAF、AWS Firewall Manager 與 AWS Shield Advanced

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

AND規則陳述式

ANDrules 陳述式會結合巢狀陳述式與邏輯AND運算,因此所有巢狀陳述式都必須相符,才能符合AND陳述式。這需要至少一個巢狀化陳述式。

嵌套-您可以嵌套此語句類型。

WCU — 取決於巢狀陳述式。

在哪裡可以找到這個規則聲明
  • 主控台上的規則產生器 — 對於如果要求,請選擇符合所有陳述式 (AND),然後填入巢狀陳述式。

  • APIAndStatement

範例

下列清單顯示如何使用AND和NOT邏輯規則陳述式,從 SQL 插入攻擊陳述式的相符項目中消除誤判。在這個例子中,假設我們可以編寫一個字節 match 語句來匹配導致誤報的請求。

AND 陳述式會比對不符合位元組比對陳述式且符合 SQL 插入攻擊陳述式的要求。

{ "Name": "SQLiExcludeFalsePositives", "Priority": 0, "Statement": { "AndStatement": { "Statements": [ { "NotStatement": { "Statement": { "ByteMatchStatement": { "SearchString": "string identifying a false positive", "FieldToMatch": { "Body": { "OversizeHandling": "MATCH" } }, "TextTransformations": [ { "Priority": 0, "Type": "NONE" } ], "PositionalConstraint": "CONTAINS" } } } }, { "SqliMatchStatement": { "FieldToMatch": { "Body": { "OversizeHandling": "MATCH" } }, "TextTransformations": [ { "Priority": 0, "Type": "NONE" } ] } } ] } }, "Action": { "Block": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "SQLiExcludeFalsePositives" } }

使用主控台規則視覺化編輯器,您可以將非邏輯陳述式或陳述式嵌套在OR或NOTAND陳述式下。NOT陳述式的巢狀顯示在前面的範例中。

使用主控台規則視覺化編輯器,您可以將大多數 nestable 陳述式嵌套在邏輯規則陳述式下,例如先前範例中所示的陳述式。您不能使用可視化編輯器嵌套OR或AND語句。要配置這種類型的嵌套,您需要在 JSON 中提供規則語句。例如,下列 JSON 規則清單包含巢狀OR陳述式內的AND陳述式。

{ "Name": "match_rule", "Priority": 0, "Statement": { "AndStatement": { "Statements": [ { "LabelMatchStatement": { "Scope": "LABEL", "Key": "awswaf:managed:aws:bot-control:bot:category:monitoring" } }, { "NotStatement": { "Statement": { "LabelMatchStatement": { "Scope": "LABEL", "Key": "awswaf:managed:aws:bot-control:bot:name:pingdom" } } } }, { "OrStatement": { "Statements": [ { "GeoMatchStatement": { "CountryCodes": [ "JM", "JP" ] } }, { "ByteMatchStatement": { "SearchString": "JCountryString", "FieldToMatch": { "Body": {} }, "TextTransformations": [ { "Priority": 0, "Type": "NONE" } ], "PositionalConstraint": "CONTAINS" } } ] } } ] } }, "Action": { "Block": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "match_rule" } }