Instrução de regra do AND - AWS WAF, AWS Firewall Manager, e AWS Shield Advanced

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Instrução de regra do AND

A instrução de regra AND combina instruções aninhadas com uma operação AND lógica, portanto, todas as instruções aninhadas devem corresponder à instrução AND para corresponder. Isso requer pelo menos duas instruções aninhadas.

Características das instruções de regras

Aninhável: você pode aninhar esse tipo de instrução.

WCUs: depende das instruções aninhadas.

Onde encontrar essa instrução de regra

  • Criador de regras no console: para Se uma solicitação, escolha corresponder a todas as instruções (AND) e preencha as instruções aninhadas.

  • API: AndStatement

Exemplos

A lista a seguir mostra o uso de AND e instruções de regras lógicas NOT para eliminar falsos positivos das correspondências de uma instrução de ataque de injeção de SQL. Neste exemplo, suponha que possamos escrever uma instrução de correspondência de byte único para corresponder às solicitações que estão resultando em falsos positivos.

A instrução AND corresponde às solicitações que não correspondem à instrução de correspondência de byte e que correspondem à instrução de ataque de injeção de 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" } }

Usando o editor visual de regras do console, você pode aninhar uma instrução não lógica ou uma instrução NOT sob uma instrução OR ou AND. O aninhamento da instrução NOT é mostrado no exemplo anterior.

Usando o editor visual de regras do console, você pode agrupar a maioria das instruções aninháveis em uma instrução de regra lógica, como a mostrada no exemplo anterior. Você não pode usar o editor visual para aninhar instruções OR ou AND. Para configurar esse tipo de aninhamento, você precisa fornecer sua instrução de regra em JSON. Por exemplo, a lista de regras JSON a seguir inclui uma instrução OR aninhada dentro de uma instrução 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" } }