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

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

AND規則

所以此AND規則陳述式會使用邏輯結合巢狀化陳述式AND作業,因此所有巢狀陳述式都必須符合AND要比對的陳述式。這需要在最小一個巢狀化陳述式。

可巢狀— 您可以將此陳述式類型巢狀化。

WCU— 取決於巢狀化的陳述式。

哪裡可以找到此項

  • 規則建置器在主控台上 — 對於如果請求,選擇匹配所有語句(AND),然後填寫巢狀化的陳述式。

  • API 陳述式AndStatement

範例

下列清單顯示範其使用方式ANDNOT邏輯規則陳述式,可從 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" } }

使用主控台規則視覺化編輯器,您可以巢狀化非邏輯陳述式或NOT下的陳述式OR或者AND陳述式。嵌套的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" } }