

**Apresentando uma nova experiência de console para AWS WAF**

Agora você pode usar a experiência atualizada para acessar a AWS WAF funcionalidade em qualquer lugar do console. Para obter mais detalhes, consulte [Trabalhando com o console](https://docs.aws.amazon.com/waf/latest/developerguide/working-with-console.html). 

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á.

# Ajustando as configurações da declaração de regra em AWS WAF
<a name="waf-rule-statement-fields"></a>

Esta seção descreve as configurações que você pode especificar para instruções de regra que inspeciona um componente da solicitação da Web. Para obter informações sobre o uso, consulte as instruções de regras individuais em [Usando declarações de regras de correspondência em AWS WAF](waf-rule-statements-match.md). 

Um subconjunto desses componentes de solicitação da Web também pode ser usado em regras baseadas em intervalos, como chaves personalizadas de agregação de solicitações. Para mais informações, consulte [Agregando regras baseadas em taxas em AWS WAF](waf-rule-statement-type-rate-based-aggregation-options.md).

Para as configurações do componente de solicitação, você especifica o próprio tipo de componente e quaisquer opções adicionais, dependendo do tipo de componente. Por exemplo, ao inspecionar um tipo de componente que contém texto, você pode aplicar transformações de texto nele antes de inspecioná-lo. 

**nota**  
Salvo indicação em contrário, se uma solicitação da Web não tiver o componente de solicitação especificado na declaração da regra, a solicitação será AWS WAF avaliada como não correspondendo aos critérios da regra.

**Contents**
+ [Solicitar componentes em AWS WAF](waf-rule-statement-fields-list.md)
  + [Método HTTP](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-http-method)
  + [Cabeçalho único](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-single-header)
  + [Todos os cabeçalhos](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-headers)
  + [Ordem de cabeçalho](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-header-order)
  + [Cookies](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-cookies)
  + [Fragmento de URI](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-uri-fragment)
  + [Caminho do URI](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-uri-path)
  + [JA3 impressão digital](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-ja3-fingerprint)
  + [JA4 impressão digital](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-ja4-fingerprint)
  + [String de consulta](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-query-string)
  + [Parâmetro de consulta única](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-single-query-param)
  + [Todos os parâmetros da consulta](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-all-query-params)
  + [Corpo](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-body)
  + [Corpo JSON](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-json-body)
+ [Usando endereços IP encaminhados em AWS WAF](waf-rule-statement-forwarded-ip-address.md)
+ [Inspecionando pseudo-cabeçalhos HTTP/2 em AWS WAF](waf-rule-statement-request-components-for-http2-pseudo-headers.md)
+ [Usando transformações de texto em AWS WAF](waf-rule-statement-transformation.md)

# Solicitar componentes em AWS WAF
<a name="waf-rule-statement-fields-list"></a>

Esta seção descreve os componentes da solicitação da web que você pode especificar para inspeção. Você especifica o componente de solicitação para instruções de regra de correspondência que procuram padrões dentro da solicitação da web. Esses tipos de instruções incluem correspondência de string, padrão regex, ataque de injeção de SQL e instruções de restrição de tamanho. Para obter informações sobre como usar essas configurações de componentes de solicitação, consulte as instruções de regras individuais em [Usando declarações de regras de correspondência em AWS WAF](waf-rule-statements-match.md)

Salvo indicação em contrário, se uma solicitação da Web não tiver o componente de solicitação especificado na declaração da regra, a solicitação será AWS WAF avaliada como não correspondendo aos critérios da regra.

**nota**  
Especifique um único componente de solicitação para cada instrução de regra que o exija. Para inspecionar mais de um componente de uma solicitação, crie uma instrução de regra para cada componente. 

A documentação do AWS WAF console e da API fornece orientação para as configurações do componente de solicitação nos seguintes locais: 
+ **Construtor de regras** no console: nas configurações de **Instrução** de um tipo de regra comum, escolha o componente que você deseja inspecionar na caixa de diálogo **Inspecionar** em **Solicitar componentes**.
+ **Conteúdo da instrução da API**: `FieldToMatch`

O restante desta seção descreve as opções da parte da solicitação da web a inspecionar. 

**Topics**
+ [Método HTTP](#waf-rule-statement-request-component-http-method)
+ [Cabeçalho único](#waf-rule-statement-request-component-single-header)
+ [Todos os cabeçalhos](#waf-rule-statement-request-component-headers)
+ [Ordem de cabeçalho](#waf-rule-statement-request-component-header-order)
+ [Cookies](#waf-rule-statement-request-component-cookies)
+ [Fragmento de URI](#waf-rule-statement-request-component-uri-fragment)
+ [Caminho do URI](#waf-rule-statement-request-component-uri-path)
+ [JA3 impressão digital](#waf-rule-statement-request-component-ja3-fingerprint)
+ [JA4 impressão digital](#waf-rule-statement-request-component-ja4-fingerprint)
+ [String de consulta](#waf-rule-statement-request-component-query-string)
+ [Parâmetro de consulta única](#waf-rule-statement-request-component-single-query-param)
+ [Todos os parâmetros da consulta](#waf-rule-statement-request-component-all-query-params)
+ [Corpo](#waf-rule-statement-request-component-body)
+ [Corpo JSON](#waf-rule-statement-request-component-json-body)

## Método HTTP
<a name="waf-rule-statement-request-component-http-method"></a>

Inspectiona o método HTTP para a solicitação. O método HTTP indica o tipo de operação que a solicitação da Web está solicitando que seu recurso protegido realize, como `POST` ou `GET`. 

## Cabeçalho único
<a name="waf-rule-statement-request-component-single-header"></a>

Inspeciona um único cabeçalho nomeado na solicitação. 

Para essa opção, você especifica o nome do cabeçalho, por exemplo, `User-Agent` ou `Referer`. A correspondência de string para o nome não diferencia maiúsculas de minúsculas e é executada após cortar os espaços à esquerda e à direita do cabeçalho da solicitação e da regra.

## Todos os cabeçalhos
<a name="waf-rule-statement-request-component-headers"></a>

Inspeciona todos os cabeçalhos da solicitação, incluindo cookies. É possível aplicar um filtro para inspecionar um subconjunto de todos os cabeçalhos. 

Para essa opção, você fornece as seguintes especificações: 
+ **Padrões de correspondência** — O filtro a ser usado para obter um subconjunto de cabeçalhos para inspeção. AWS WAF procura esses padrões nas teclas dos cabeçalhos. 

  A configuração de padrões de correspondência pode ser uma das seguintes: 
  + **Tudo**: corresponder todas as teclas. Avalie os critérios de inspeção de regras para todos os cabeçalhos. 
  + **Cabeçalhos excluídos**: inspeciona apenas os cabeçalhos cujas chaves não correspondem a nenhuma das strings especificadas aqui. A correspondência de string para uma chave não diferencia maiúsculas de minúsculas. A correspondência é realizada após cortar os espaços à esquerda e à direita do cabeçalho da solicitação e da regra de correspondência.
  + **Cabeçalhos incluídos**: inspeciona apenas os cabeçalhos que têm uma chave que corresponda a uma das strings especificadas aqui. A correspondência de string para uma chave não diferencia maiúsculas de minúsculas. A correspondência é realizada após cortar os espaços à esquerda e à direita do cabeçalho da solicitação e da regra de correspondência.
+ **Escopo correspondente** — As partes dos cabeçalhos que AWS WAF devem ser inspecionadas de acordo com os critérios de inspeção da regra. Você pode especificar **chaves**, **valores** ou **tudo** para inspecionar as chaves e os valores em busca de uma correspondência. 

  **Tudo** não exige que uma correspondência seja encontrada nas chaves e que uma correspondência seja encontrada nos valores. Isso requer que uma correspondência seja encontrada nas chaves, nos valores ou nos dois. Para exigir uma correspondência nas chaves e nos valores, use uma instrução lógica `AND` para combinar duas regras de correspondência, uma que inspeciona as chaves e outra que inspeciona os valores. 
+ **Manipulação de tamanho grande** — Como AWS WAF lidar com solicitações que têm dados de cabeçalho maiores do que os que AWS WAF podem ser inspecionados. AWS WAF pode inspecionar no máximo os primeiros 8 KB (8.192 bytes) dos cabeçalhos da solicitação e, no máximo, os primeiros 200 cabeçalhos. O conteúdo está disponível para inspeção AWS WAF até o primeiro limite atingido. Você pode optar por continuar a inspeção ou pular a inspeção e marcar a solicitação como compatível ou não com a regra. Para saber mais sobre como processar conteúdo de tamanho acima do limite, consulte [Componentes de solicitação da web de tamanho grande em AWS WAF](waf-oversize-request-components.md).

## Ordem de cabeçalho
<a name="waf-rule-statement-request-component-header-order"></a>

Inspecione uma string contendo a lista dos nomes dos cabeçalhos da solicitação, ordenados conforme aparecem na solicitação da web que AWS WAF recebe para inspeção. AWS WAF gera a string e, em seguida, a usa como campo para combinar o componente em sua inspeção. AWS WAF separa os nomes dos cabeçalhos na string com dois pontos e sem espaços adicionados, por exemplo. `host:user-agent:accept:authorization:referer`

Para essa opção, você fornece as seguintes especificações: 
+ **Manipulação de tamanho grande** — Como AWS WAF lidar com solicitações que têm dados de cabeçalho mais numerosos ou maiores do que os que AWS WAF podem ser inspecionados. AWS WAF pode inspecionar no máximo os primeiros 8 KB (8.192 bytes) dos cabeçalhos da solicitação e, no máximo, os primeiros 200 cabeçalhos. O conteúdo está disponível para inspeção AWS WAF até o primeiro limite atingido. Você pode optar por continuar a inspeção dos cabeçalhos que estão disponíveis ou pular a inspeção e marcar a solicitação como compatível ou não com a regra. Para saber mais sobre como processar conteúdo de tamanho acima do limite, consulte [Componentes de solicitação da web de tamanho grande em AWS WAF](waf-oversize-request-components.md).

## Cookies
<a name="waf-rule-statement-request-component-cookies"></a>

Inspeciona todos os cookies de solicitação. É possível aplicar um filtro para inspecionar um subconjunto de todos os cookies. 

Para essa opção, você fornece as seguintes especificações: 
+ **Padrões de correspondência**: o filtro a ser usado para obter um subconjunto de cookies para inspeção. O AWS WAF procura esses padrões nas chaves dos cookies. 

  A configuração de padrões de correspondência pode ser uma das seguintes: 
  + **Tudo**: corresponder todas as teclas. Avalie os critérios de inspeção de regras para todos os cookies. 
  + **Cookies excluídos**: inspeciona apenas os cookies cujas chaves não correspondem a nenhuma das strings especificadas aqui. A correspondência de string para uma chave diferencia maiúsculas de minúsculas e deve ser exata. 
  + **Cookies incluídos**: inspeciona apenas os cookies que têm uma chave que corresponda a uma das strings especificadas aqui. A correspondência de string para uma chave diferencia maiúsculas de minúsculas e deve ser exata. 
+ **Escopo da correspondência** — As partes dos cookies que AWS WAF devem ser inspecionadas de acordo com os critérios de inspeção da regra. Você pode especificar **chaves**, **valores** ou **tudo** para chaves e valores. 

  **Tudo** não exige que uma correspondência seja encontrada nas chaves e que uma correspondência seja encontrada nos valores. Isso requer que uma correspondência seja encontrada nas chaves, nos valores ou nos dois. Para exigir uma correspondência nas chaves e nos valores, use uma instrução lógica `AND` para combinar duas regras de correspondência, uma que inspeciona as chaves e outra que inspeciona os valores. 
+ **Manipulação de tamanho grande** — Como AWS WAF lidar com solicitações que têm dados de cookies maiores do que os que AWS WAF podem ser inspecionados. AWS WAF pode inspecionar no máximo os primeiros 8 KB (8.192 bytes) dos cookies de solicitação e no máximo os primeiros 200 cookies. O conteúdo está disponível para inspeção AWS WAF até o primeiro limite atingido. Você pode optar por continuar a inspeção ou pular a inspeção e marcar a solicitação como compatível ou não com a regra. Para saber mais sobre como processar conteúdo de tamanho acima do limite, consulte [Componentes de solicitação da web de tamanho grande em AWS WAF](waf-oversize-request-components.md).

## Fragmento de URI
<a name="waf-rule-statement-request-component-uri-fragment"></a>

**nota**  
A inspeção de fragmentos de Uri está disponível somente para CloudFront distribuições e balanceadores de carga de aplicativos.

Ela inspeciona parte de uma URL que vem depois do símbolo “\$1”, fornecendo informações adicionais sobre o recurso, por exemplo, \$1section2. Para saber mais, consulte [Identificador de recurso uniforme (URI): sintaxe genérica](https://tools.ietf.org/html/rfc3986#section-3). 

Se você não usar uma transformação de texto com essa opção, AWS WAF não normaliza o fragmento do URI e o inspeciona exatamente como o recebe do cliente na solicitação. Para obter mais informações sobre transformações de texto, consulte [Usando transformações de texto em AWS WAF](waf-rule-statement-transformation.md).

**Requisitos de instrução de regras**  
Você deve fornecer um comportamento de fallback para essa instrução de regra. O comportamento de fallback é o status de correspondência que você deseja atribuir AWS WAF à solicitação da web se o URI estiver ausente, o fragmento ou o serviço associado não for Application Load Balancer ou. CloudFront Se você optar por corresponder, AWS WAF tratará a solicitação como correspondente à declaração da regra e aplicará a ação da regra à solicitação. Se você optar por não corresponder, AWS WAF tratará a solicitação como não correspondente à declaração da regra.

## Caminho do URI
<a name="waf-rule-statement-request-component-uri-path"></a>

Inspeciona a parte de um URL que identifica um recurso, como `/images/daily-ad.jpg`. Para obter mais informações, consulte [Identificador de recurso uniforme (URI): sintaxe genérica](https://tools.ietf.org/html/rfc3986#section-3). 

Se você não usa uma transformação de texto com essa opção, AWS WAF não normaliza o URI e o inspeciona exatamente como o recebe do cliente na solicitação. Para obter mais informações sobre transformações de texto, consulte [Usando transformações de texto em AWS WAF](waf-rule-statement-transformation.md).

## JA3 impressão digital
<a name="waf-rule-statement-request-component-ja3-fingerprint"></a>

Inspeciona a JA3 impressão digital da solicitação. 

**nota**  
JA3 a inspeção de impressão digital está disponível somente para CloudFront distribuições da Amazon e Application Load Balancers.

A JA3 impressão digital é um hash de 32 caracteres derivado do TLS Client Hello de uma solicitação recebida. Essa impressão digital serve como um identificador exclusivo para a configuração TLS do cliente. AWS WAF calcula e registra essa impressão digital para cada solicitação que tenha informações suficientes do TLS Client Hello para o cálculo. Quase todas as solicitações da web incluem essas informações.

**Como obter a JA3 impressão digital de um cliente**  
Você pode obter a JA3 impressão digital das solicitações de um cliente nos registros do pacote de proteção (Web ACL). Se AWS WAF for capaz de calcular a impressão digital, ela a inclui nos registros. Para obter informações sobre os campos de log, consulte [Campos do log para tráfego do pacote de proteção (ACL da Web)](logging-fields.md).

**Requisitos de instrução de regras**  
Você pode inspecionar a JA3 impressão digital somente dentro de uma instrução de correspondência de sequência de caracteres definida para corresponder exatamente à sequência de caracteres fornecida. Forneça a string de JA3 impressão digital dos registros em sua especificação de instrução string match para corresponder a quaisquer solicitações futuras que tenham a mesma configuração de TLS. Para obter mais informações sobre instruções de regra de correspondência de string, consulte [Instrução de regra de correspondência de string](waf-rule-statement-type-string-match.md).

Você deve fornecer um comportamento de fallback para essa instrução de regra. O comportamento de fallback é o status de correspondência que você deseja atribuir AWS WAF à solicitação da web AWS WAF se não conseguir calcular a JA3 impressão digital. Se você optar pela correspondência, AWS WAF trata a solicitação como correspondente à instrução da regra e aplica a ação da regra à solicitação. Se você optar por não corresponder, AWS WAF tratará a solicitação como não correspondente à declaração da regra.

Para usar essa opção de correspondência, você deve registrar em log o tráfego do pacote de proteção (ACL da Web). Para mais informações, consulte [Registrando o tráfego do pacote de AWS WAF proteção (Web ACL)](logging.md).

## JA4 impressão digital
<a name="waf-rule-statement-request-component-ja4-fingerprint"></a>

Inspeciona a JA4 impressão digital da solicitação. 

**nota**  
JA4 a inspeção de impressão digital está disponível somente para CloudFront distribuições da Amazon e Application Load Balancers.

A JA4 impressão digital é um hash de 36 caracteres derivado do TLS Client Hello de uma solicitação recebida. Essa impressão digital serve como um identificador exclusivo para a configuração TLS do cliente. JA4 a impressão digital é uma extensão da JA3 impressão digital que pode resultar em menos impressões digitais exclusivas para alguns navegadores. AWS WAF calcula e registra essa impressão digital para cada solicitação que tenha informações suficientes do TLS Client Hello para o cálculo. Quase todas as solicitações da web incluem essas informações.

**Como obter a JA4 impressão digital de um cliente**  
Você pode obter a JA4 impressão digital das solicitações de um cliente nos registros do pacote de proteção (Web ACL). Se AWS WAF for capaz de calcular a impressão digital, ela a inclui nos registros. Para obter informações sobre os campos de log, consulte [Campos do log para tráfego do pacote de proteção (ACL da Web)](logging-fields.md).

**Requisitos de instrução de regras**  
Você pode inspecionar a JA4 impressão digital somente dentro de uma instrução de correspondência de sequência de caracteres definida para corresponder exatamente à sequência de caracteres fornecida. Forneça a string de JA4 impressão digital dos registros em sua especificação de instrução string match para corresponder a quaisquer solicitações futuras que tenham a mesma configuração de TLS. Para obter mais informações sobre instruções de regra de correspondência de string, consulte [Instrução de regra de correspondência de string](waf-rule-statement-type-string-match.md).

Você deve fornecer um comportamento de fallback para essa instrução de regra. O comportamento de fallback é o status de correspondência que você deseja atribuir AWS WAF à solicitação da web AWS WAF se não conseguir calcular a JA4 impressão digital. Se você optar pela correspondência, AWS WAF trata a solicitação como correspondente à instrução da regra e aplica a ação da regra à solicitação. Se você optar por não corresponder, AWS WAF tratará a solicitação como não correspondente à declaração da regra.

Para usar essa opção de correspondência, você deve registrar em log o tráfego do pacote de proteção (ACL da Web). Para mais informações, consulte [Registrando o tráfego do pacote de AWS WAF proteção (Web ACL)](logging.md).

## String de consulta
<a name="waf-rule-statement-request-component-query-string"></a>

Inspeciona parte de um URL exibida após um caractere `?`, se houver.

**nota**  
Para condições de correspondência de cross-site scripting, recomendamos que você escolha **Todos os parâmetros de consulta** em vez de **String de consulta**. A escolha de **Todos os parâmetros de consulta** adiciona 10% WCUs ao custo base.

## Parâmetro de consulta única
<a name="waf-rule-statement-request-component-single-query-param"></a>

Inspeciona um único parâmetro de consulta que você definiu como parte da cadeia de caracteres de consulta. AWS WAF inspeciona o valor do parâmetro que você especifica. 

Para essa opção, você também especifica um **Argumento de consulta**. Por exemplo, se o URL for `www.xyz.com?UserName=abc&SalesRegion=seattle`, você pode especificar `UserName` ou `SalesRegion` para o argumento da consulta. O tamanho máximo para o nome do argumento é de 30 caracteres. O nome não diferencia maiúsculas e minúsculas, portanto, se você especificar `UserName`, o AWS WAF combina a todas as variações de `UserName`, incluindo `username` e `UsERName`.

Se a string de consulta contiver mais de uma instância do argumento de consulta que você especificou, AWS WAF inspeciona todos os valores em busca de uma correspondência usando a OR lógica. Por exemplo, no URL `www.xyz.com?SalesRegion=boston&SalesRegion=seattle`, o AWS WAF avalia o nome que você especificou em `boston` e `seattle`. Se qualquer um for uma correspondência, a inspeção é uma correspondência.

## Todos os parâmetros da consulta
<a name="waf-rule-statement-request-component-all-query-params"></a>

Inspeciona todos os parâmetros de consulta na solicitação. Isso é semelhante à escolha do componente de parâmetro de consulta único, mas AWS WAF inspeciona os valores de todos os argumentos na string de consulta. Por exemplo, se o URL for `www.xyz.com?UserName=abc&SalesRegion=seattle`, o AWS WAF dispara uma correspondência se o valor `UserName` ou `SalesRegion` corresponder aos critérios de inspeção. 

A escolha dessa opção adiciona 10% WCUs ao custo base.

## Corpo
<a name="waf-rule-statement-request-component-body"></a>

Inspeciona o corpo da solicitação, avaliado como texto simples. Você também pode avaliar o corpo como JSON usando o tipo de conteúdo JSON. 

O corpo da solicitação é a parte da solicitação que segue imediatamente os cabeçalhos da solicitação. Contém quaisquer dados adicionais necessários para a solicitação da Web, por exemplo, dados de um formulário. 
+ No console, você seleciona isso na opção **Corpo** da **Opção de solicitação**, selecionando a opção **Tipo de conteúdo** **Texto simples**. 
+ Na API, na especificação da regra `FieldToMatch`, você especifica `Body` para inspecionar o corpo da solicitação como texto simples.

Para Application Load Balancer e AWS AppSync, AWS WAF pode inspecionar os primeiros 8 KB do corpo de uma solicitação. Pois CloudFront, o API Gateway, o Amazon Cognito, o App Runner e o Verified Access, por padrão, AWS WAF podem inspecionar os primeiros 16 KB e você pode aumentar o limite em até 64 KB na configuração do pacote de proteção (web ACL). Para obter mais informações, consulte [Considerações para gerenciar a inspeção corporal em AWS WAF](web-acl-setting-body-inspection-limit.md).

Você deve especificar o tratamento de tamanho grande para esse tipo de componente. O tratamento de tamanho grande define como AWS WAF lida com solicitações que têm dados corporais maiores do que os que AWS WAF podem ser inspecionados. Você pode optar por continuar a inspeção ou pular a inspeção e marcar a solicitação como compatível ou não com a regra. Para saber mais sobre como processar conteúdo de tamanho acima do limite, consulte [Componentes de solicitação da web de tamanho grande em AWS WAF](waf-oversize-request-components.md). 

Você também pode avaliar o corpo como JSON analisado. Para obter mais informações, consulte a seção abaixo. 

## Corpo JSON
<a name="waf-rule-statement-request-component-json-body"></a>

Inspeciona o corpo da solicitação, avaliado como JSON. Você também pode avaliar o corpo como texto simples. 

O corpo da solicitação é a parte da solicitação que segue imediatamente os cabeçalhos da solicitação. Contém quaisquer dados adicionais necessários para a solicitação da Web, por exemplo, dados de um formulário. 
+ No console, você seleciona isso na opção **Corpo** da **Opção de solicitação**, selecionando a opção **Tipo de conteúdo** **JSON**. 
+ Na API, na especificação da regra `FieldToMatch`, você especifica `JsonBody`.

Para Application Load Balancer e AWS AppSync, AWS WAF pode inspecionar os primeiros 8 KB do corpo de uma solicitação. Pois CloudFront, o API Gateway, o Amazon Cognito, o App Runner e o Verified Access, por padrão, AWS WAF podem inspecionar os primeiros 16 KB e você pode aumentar o limite em até 64 KB na configuração do pacote de proteção (web ACL). Para obter mais informações, consulte [Considerações para gerenciar a inspeção corporal em AWS WAF](web-acl-setting-body-inspection-limit.md).

Você deve especificar o tratamento de tamanho grande para esse tipo de componente. O tratamento de tamanho grande define como AWS WAF lida com solicitações que têm dados corporais maiores do que os que AWS WAF podem ser inspecionados. Você pode optar por continuar a inspeção ou pular a inspeção e marcar a solicitação como compatível ou não com a regra. Para saber mais sobre como processar conteúdo de tamanho acima do limite, consulte [Componentes de solicitação da web de tamanho grande em AWS WAF](waf-oversize-request-components.md). 

Escolher essa opção dobra o custo WCUs base do extrato da partida. Por exemplo, se o custo base da declaração de correspondência for 5 WCUs sem análise JSON, usar a análise JSON dobra o custo para 10. WCUs 

Para essa opção, você fornece especificações adicionais, conforme descrito na seção a seguir.

**Como AWS WAF lida com a inspeção corporal JSON**  
Ao AWS WAF inspecionar o corpo da solicitação da web como JSON, ele executa etapas para analisar o corpo e extrair os elementos JSON para inspeção. AWS WAF executa essas etapas de acordo com suas opções de configuração. 

A seguir estão listadas as etapas que são AWS WAF executadas. 

1. **Analisar o conteúdo do corpo** — AWS WAF analisa o conteúdo do corpo da solicitação da web para extrair os elementos JSON para inspeção. AWS WAF faz o possível para analisar todo o conteúdo do corpo, mas a análise pode falhar em vários estados de erro no conteúdo. Os exemplos incluem caracteres inválidos, chaves duplicadas, truncamento e conteúdo cujo nó raiz não seja um objeto ou uma matriz. 

   A opção **Body parsing fallback behavior** determina o que AWS WAF acontece se ela falhar na análise completa do corpo JSON: 
   + **Nenhum (comportamento padrão)** - AWS WAF avalia o conteúdo somente até o ponto em que ele encontrou um erro de análise. 
   + **Avaliar como string** - inspecione o corpo como texto simples. AWS WAF aplica as transformações de texto e os critérios de inspeção que você definiu para a inspeção JSON à string do corpo do texto.
   + **Corresponder** - Trate a solicitação da web como correspondente à declaração da regra. AWS WAF aplica a ação da regra à solicitação.
   + **Sem correspondência**: tratar a solicitação da Web como não correspondente à instrução de regra.
**nota**  
Esse comportamento alternativo só é acionado quando AWS WAF encontra um erro ao analisar a string JSON. 

**A análise não valida totalmente o JSON**  
AWS WAF a análise não valida totalmente a string JSON de entrada, portanto, a análise pode ser bem-sucedida mesmo para JSON inválido.

   Por exemplo, AWS WAF analisa o seguinte JSON inválido sem erros: 
   + Vírgula ausente: `{"key1":"value1""key2":"value2"}`
   + Dois pontos ausentes: `{"key1":"value1","key2""value2"}`
   + Dois pontos extras: `{"key1"::"value1","key2""value2"}`

   Para casos como esses em que a análise é bem-sucedida, mas o resultado não é um JSON totalmente válido, o resultado das etapas subsequentes da avaliação pode variar. A extração pode perder alguns elementos ou a avaliação da regra pode ter resultados inesperados. Recomendamos que você valide o JSON recebido em seu aplicativo e trate o JSON inválido conforme necessário. 

1. **Extraia os elementos JSON** — AWS WAF identifica o subconjunto de elementos JSON a serem inspecionados de acordo com suas configurações: 
   + A opção **JSON match scope** especifica os tipos de elementos no JSON que AWS WAF devem ser inspecionados. 

     Você pode especificar **chaves**, **valores** ou **tudo** para chaves e valores. 

     **Tudo** não exige que uma correspondência seja encontrada nas chaves e que uma correspondência seja encontrada nos valores. Isso requer que uma correspondência seja encontrada nas chaves, nos valores ou nos dois. Para exigir uma correspondência nas chaves e nos valores, use uma instrução lógica `AND` para combinar duas regras de correspondência, uma que inspeciona as chaves e outra que inspeciona os valores. 
   + A opção **Conteúdo a ser inspecionado** especifica como filtrar o conjunto de elementos para o subconjunto que você deseja AWS WAF inspecionar. 

     É necessário especificar um dos seguintes:
     + **Conteúdo JSON completo**: avalia todos os elementos. 
     + **Somente elementos incluídos**: avalia somente os elementos cujos caminhos correspondem aos critérios do JSON Pointer fornecidos por você. Não use essa opção para indicar *todos* os caminhos no JSON. Em vez disso, use **Conteúdo JSON completo**. 

       Para obter informações sobre a sintaxe do JSON Pointer, consulte a documentação do Internet Engineering Task Force (IETF) [JavaScript Object Notation](https://tools.ietf.org/html/rfc6901) (JSON) Pointer. 

       Por exemplo, é possível fornecer o seguinte no console: 

       ```
       /dogs/0/name
       /dogs/1/name
       ```

       Na API ou na CLI, você pode fornecer o seguinte: 

       ```
       "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"]
       ```

   Por exemplo, digamos que a configuração **Conteúdo a ser inspecionado** seja **Somente elementos incluídos** e a configuração de elementos incluídos seja `/a/b`. 

   Para o seguinte exemplo de corpo JSON: 

   ```
   { 
     "a":{
       "c":"d",
       "b":{
         "e":{
           "f":"g"
         }
       }
     }
   }
   ```

   Os conjuntos de elementos que AWS WAF inspecionariam cada configuração do **escopo de correspondência JSON** estão listados abaixo. Observe que a chave `b`, que faz parte do caminho dos elementos incluídos, não é avaliada.
   + **Todos**: `e`, `f,` e `g`.
   + **Chaves**: `e` e `f`.
   + **Valores**: `g`.

1. **Inspecione o conjunto de elementos JSON** — AWS WAF aplica todas as transformações de texto que você especificou aos elementos JSON extraídos e, em seguida, compara o conjunto de elementos resultante com os critérios de correspondência da declaração de regra. Esse é o mesmo comportamento de transformação e avaliação de outros componentes de solicitação da Web. Se algum dos elementos JSON extraídos corresponder, a solicitação da Web corresponderá à regra. 

# Usando endereços IP encaminhados em AWS WAF
<a name="waf-rule-statement-forwarded-ip-address"></a>

Esta seção se aplica às instruções de regras que usam o endereço IP de uma solicitação da web. Por padrão, AWS WAF usa o endereço IP da origem da solicitação da web. No entanto, se uma solicitação da web passar por um ou mais proxies ou balanceadores de carga, a origem da solicitação da web conterá o endereço do último proxy, e não o endereço de origem do cliente. Nesse caso, o endereço do cliente de origem geralmente é encaminhado em outro cabeçalho HTTP. Esse cabeçalho normalmente é `X-Forwarded-For` (XFF), mas pode ser diferente. 

**Instruções de regra que usam endereços IP**  
As instruções de regra que usam endereços IP são as seguintes:
+ [Correspondência de conjunto de IPs](waf-rule-statement-type-ipset-match.md): inspeciona o endereço IP em busca de uma correspondência com os endereços definidos em um conjunto de IPs.
+ [Correspondência geográfica](waf-rule-statement-type-geo-match.md): usa o endereço IP para determinar o país e a região de origem e corresponde o país de origem com uma lista de países.
+ [Correspondência de ASN](waf-rule-statement-type-asn-match.md)- Usa o endereço IP para determinar o Número do Sistema Autônomo (ASN) e compara o ASN com uma lista de. ASNs
+ [Como usar instruções de regras baseadas em intervalos](waf-rule-statement-type-rate-based.md): pode agregar solicitações por seus endereços IP para garantir que nenhum endereço IP individual envie solicitações em intervalos muito altos. Você pode usar a agregação de endereços IP sozinha ou em combinação com outras chaves de agregação. 

Você pode AWS WAF instruir o uso de um endereço IP encaminhado para qualquer uma dessas declarações de regra, seja do `X-Forwarded-For` cabeçalho ou de outro cabeçalho HTTP, em vez de usar a origem da solicitação da web. Para obter detalhes sobre como fornecer as especificações, consulte a orientação para os tipos individuais de instrução de regra.

**nota**  
Se um cabeçalho estiver ausente, AWS WAF avalia qualquer declaração que use esse cabeçalho como “Sem correspondência”. Se você usar uma declaração NOT com um resultado “Sem correspondência”, AWS WAF converte a avaliação em “Corresponder”. Cabeçalhos ausentes não acionam o comportamento de fallback - somente valores de cabeçalho inválidos o fazem.

**Comportamento de fallback**  
Ao usar o endereço IP encaminhado, você indica o status de correspondência AWS WAF a ser atribuído à solicitação da web se a solicitação não tiver um endereço IP válido na posição especificada: 
+ **MATCH** - Trate a solicitação da web como correspondente à declaração da regra. AWS WAF aplica a ação da regra à solicitação.
+ **Sem correspondência**: tratar a solicitação da Web como não correspondente à instrução de regra. 

**Endereços IP usados no AWS WAF Bot Control**  
O grupo de regras gerenciadas do Bot Control verifica os bots usando os endereços IP de AWS WAF. Se você usa o Controle de Bots e verificou que os bots são roteados por meio de um proxy ou balanceador de carga, é necessário permitir explicitamente que eles usem uma regra personalizada. Por exemplo, você pode configurar uma regra personalizada de correspondência de conjuntos de IP que usa endereços IP encaminhados para detectar e permitir que seus bots sejam verificados. Você pode usar a regra para personalizar seu gerenciamento de bots de várias maneiras. Para obter informações e exemplos, consulte [AWS WAF Controle de bots](waf-bot-control.md). 

**Considerações gerais sobre o uso de endereços IP encaminhados**  
Antes de usar um endereço IP encaminhado, observe as seguintes advertências gerais: 
+ Um cabeçalho pode ser modificado por proxies ao longo do caminho, e os proxies podem tratar o cabeçalho de maneiras diferentes. 
+ Os invasores podem alterar o conteúdo do cabeçalho na tentativa de contornar as inspeções do AWS WAF . 
+ O endereço IP dentro do cabeçalho pode estar incorreto ou ser inválido.
+ O cabeçalho que você especifica pode não estar presente em uma solicitação.

**Considerações sobre o uso de endereços IP encaminhados com AWS WAF**  
A lista a seguir descreve os requisitos e as advertências para o uso de endereços IP encaminhados em: AWS WAF
+ Para qualquer regra única, você pode especificar um cabeçalho para o endereço IP encaminhado. A especificação do cabeçalho não diferencia maiúsculas de minúsculas.
+ Para instruções de regras baseadas em intervalos, nenhuma instrução de escopo aninhada herda a configuração de IP encaminhada. Especifique a configuração para cada instrução que usa um endereço IP encaminhado. 
+ Para correspondência geográfica, correspondência ASN e regras baseadas em taxas, AWS WAF usa o primeiro endereço no cabeçalho. Por exemplo, se um cabeçalho contiver `10.1.1.1, 127.0.0.0, 10.10.10.10` AWS WAF usos `10.1.1.1`
+ Para correspondência de conjunto de IP, você indica se deseja corresponder ao primeiro, ao último ou a qualquer endereço no cabeçalho. Se você especificar algum, AWS WAF inspeciona todos os endereços no cabeçalho em busca de uma correspondência, até 10 endereços. Se o cabeçalho contiver mais de 10 endereços, AWS WAF inspeciona os últimos 10. 
+ Os cabeçalhos que contêm vários endereços devem usar um separador de vírgula entre os endereços. Se uma solicitação usar um separador diferente de uma vírgula, o AWS WAF considerará os endereços IP no cabeçalho incorretos.
+ Se os endereços IP dentro do cabeçalho estiverem incorretos ou forem inválidos, o AWS WAF designa a solicitação da web como compatível ou não com a regra, de acordo com o comportamento de fallback especificado na configuração de IP encaminhado.
+ Se o cabeçalho que você especificar não estiver presente em uma solicitação, AWS WAF a regra não será aplicada à solicitação. Isso significa que AWS WAF não aplica a ação da regra e não aplica o comportamento alternativo.
+ Uma instrução de regra que usa um cabeçalho IP encaminhado para o endereço IP não usará o endereço IP informado pela origem da solicitação da web.

**Práticas recomendadas para usar endereços IP encaminhados com AWS WAF**  
Ao usar endereços IP encaminhados, siga as seguintes práticas recomendadas: 
+ Considere cuidadosamente todos os estados possíveis dos cabeçalhos de sua solicitação antes de ativar a configuração de IP encaminhado. Talvez seja necessário usar mais de uma regra para obter o comportamento desejado.
+ Para inspecionar vários cabeçalhos de IP encaminhados ou inspecionar a origem da solicitação da web e um cabeçalho de IP encaminhado, use uma regra para cada fonte de endereço IP. 
+ Para bloquear solicitações da web que tenham um cabeçalho inválido, defina a ação de regra para bloquear e defina o comportamento de fallback para que a configuração de IP encaminhado corresponda. 

**Exemplo de JSON para endereços IP encaminhados**  
A seguinte instrução de correspondência geográfica corresponde somente se o cabeçalho `X-Forwarded-For` contiver um IP cujo país de origem seja `US`: 

```
{
  "Name": "XFFTestGeo",
  "Priority": 0,
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "XFFTestGeo"
  },
  "Statement": {
    "GeoMatchStatement": {
      "CountryCodes": [
        "US"
      ],
      "ForwardedIPConfig": {
        "HeaderName": "x-forwarded-for",
        "FallbackBehavior": "MATCH"
      }
    }
  }
}
```

A seguinte regra baseada em intervalos agrega solicitações com base no primeiro IP no cabeçalho `X-Forwarded-For`. A regra conta somente as solicitações que correspondem à instrução de correspondência geográfica aninhada e bloqueia somente as solicitações que correspondem à instrução de correspondência geográfica. A instrução de correspondência geográfica aninhada também usa o cabeçalho `X-Forwarded-For` para determinar se o endereço IP indica um país de origem de `US`. Em caso afirmativo, ou se o cabeçalho estiver presente, mas malformado, a instrução de correspondência geográfica retornará uma correspondência. 

```
{
  "Name": "XFFTestRateGeo",
  "Priority": 0,
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "XFFTestRateGeo"
  },
  "Statement": {
    "RateBasedStatement": {
      "Limit": "100",
      "AggregateKeyType": "FORWARDED_IP",
      "ScopeDownStatement": {
        "GeoMatchStatement": {
          "CountryCodes": [
            "US"
          ],
          "ForwardedIPConfig": {
            "HeaderName": "x-forwarded-for",
            "FallbackBehavior": "MATCH"
          }
        }
      },
      "ForwardedIPConfig": {
        "HeaderName": "x-forwarded-for",
        "FallbackBehavior": "MATCH"
      }
    }
  }
}
```

# Inspecionando pseudo-cabeçalhos HTTP/2 em AWS WAF
<a name="waf-rule-statement-request-components-for-http2-pseudo-headers"></a>

Esta seção explica como você pode usar AWS WAF para inspecionar pseudo-cabeçalhos HTTP/2.

 AWS Os recursos protegidos que oferecem suporte ao tráfego HTTP/2 não encaminham pseudocabeçalhos HTTP/2 AWS WAF para inspeção, mas fornecem conteúdo de pseudo-cabeçalhos em componentes de solicitação da web que inspecionam. AWS WAF 

Você pode usar AWS WAF para inspecionar somente os pseudo-cabeçalhos listados na tabela a seguir. 


**Conteúdo do pseudocabeçalho HTTP/2 mapeado para componentes de solicitação da web**  

| Pseudocabeçalho HTTP/2 | Componente de solicitação da web para inspecionar | Documentação | 
| --- | --- | --- | 
|  `:method`  |  Método HTTP   |  [Método HTTP](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-http-method)  | 
|  `:authority`  |  `Host`Cabeçalho   |  [Cabeçalho único](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-single-header)  [Todos os cabeçalhos](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-headers)  | 
|  Caminho do URI `:path`  | Caminho do URI  | [Caminho do URI](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-uri-path) | 
|  `:path` query  |  String de consulta  |  [String de consulta](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-query-string) [Parâmetro de consulta única](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-single-query-param) [Todos os parâmetros da consulta](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-all-query-params)  | 

# Usando transformações de texto em AWS WAF
<a name="waf-rule-statement-transformation"></a>

Esta seção explica como fornecer transformações para AWS WAF serem aplicadas antes de inspecionar a solicitação.

Nas instruções que buscam padrões ou definem restrições, você pode fornecer transformações para serem aplicadas antes de inspecionar AWS WAF a solicitação. A transformação reformata uma solicitação da Web para eliminar algumas das formatações incomuns que os invasores usam em uma tentativa de contornar o AWS WAF. 

Quando você usa isso com a seleção do componente de solicitação de corpo JSON, o AWS WAF aplica suas transformações após analisar e extrair os elementos a serem inspecionados do JSON. Para saber mais, consulte [Corpo JSON](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-json-body).

Se você fornecer mais de uma transformação, também definirá a ordem em que o AWS WAF deve aplicá-las. 

**WCUs**— Cada transformação de texto é 10WCUs.

A documentação do AWS WAF console e da API também fornece orientação para essas configurações nos seguintes locais: 
+ **Criador de regras** no console: **Transformação de texto**. Essa opção está disponível quando você usa componentes de solicitação. 
+ **Conteúdo da instrução da API**: `TextTransformations`Opções para transformações de texto

Cada listagem de transformação mostra as especificações do console e da API seguidas pela descrição.

Base64 decode – `BASE64_DECODE`  
AWS WAF decodifica uma string codificada em Base64.

Base64 decode extension – `BASE64_DECODE_EXT`  
AWS WAF decodifica uma string codificada em Base64, mas usa uma implementação indulgente que ignora caracteres que não são válidos. 

Command line – `CMD_LINE`  
Esta opção mitiga situações em que os atacantes podem estar injetando um comando de linha de comando do sistema operacional e estão usando formatação incomum para disfarçar todo o comando ou parte dele.   
Use essa opção para executar as seguintes transformações:  
+ Excluir os seguintes caracteres: `\ " ' ^`
+ Excluir espaços antes os seguintes caracteres: `/ (`
+ Substituir os seguintes caracteres por um espaço: `, ;`
+ Substituir vários espaços por um espaço
+ Converter as letras maiúsculas, `A-Z`, em minúsculas, `a-z`

Compress whitespace – `COMPRESS_WHITE_SPACE`  
AWS WAF comprime o espaço em branco substituindo vários espaços por um espaço e substituindo os seguintes caracteres por um caractere de espaço (ASCII 32):  
+ Quebra de página (ASCII 12)
+ Tabulação (ASCII 9)
+ Nova linha (ASCII 10)
+ Retorno de carro (ASCII 13)
+ Tabulação vertical (ASCII 11)
+ Espaço rígido (ASCII 160)

CSS decode – `CSS_DECODE`  
AWS WAF decodifica caracteres que foram codificados usando regras de escape CSS 2.x. `syndata.html#characters` Essa função utiliza até dois bytes no processo de decodificação e, portanto, pode ajudar a descobrir caracteres ASCII codificados com CSS que normalmente não seriam codificados. Ela também é útil para combater a evasão, que é uma combinação de barra invertida e caracteres não hexadecimais. Por exemplo, `ja\vascript` para `javascript`.

Escape sequences decode – `ESCAPE_SEQ_DECODE`  
AWS WAF decodifica as seguintes sequências de escape ANSI C:`\a`,,`\b`,`\f`,,`\n`,`\r`,`\t`, `\v` `\\``\?`, `\xHH` (hexadecimal) `\'``\"`, (octal). `\0OOO` As codificações que não são válidas permanecem na saída.

Hex decode – `HEX_DECODE`  
AWS WAF decodifica uma sequência de caracteres hexadecimais em um binário.

HTML entity decode – `HTML_ENTITY_DECODE`  
AWS WAF substitui os caracteres representados em formato hexadecimal `&#xhhhh;` ou decimal pelos caracteres correspondentes. `&#nnnn;`  
AWS WAF substitui os seguintes caracteres codificados em HTML por caracteres não codificados. Essa lista usa codificação HTML em minúsculas, mas o tratamento não diferencia maiúsculas de minúsculas, por exemplo, `&QuOt;` e `&quot;` são tratados da mesma forma.       
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/waf/latest/developerguide/waf-rule-statement-transformation.html)

JS decode – `JS_DECODE`  
AWS WAF decodifica sequências de JavaScript escape. Se um código `\uHHHH` estiver no intervalo de código ASCII de largura total de `FF01-FF5E`, o byte maior será utilizado para detectar e ajustar o byte menor. Caso contrário, somente o byte menor será utilizado, e o byte maior será zerado, causando uma possível perda de informações.

Lowercase – `LOWERCASE`  
AWS WAF converte letras maiúsculas (A-Z) em minúsculas (a-z).

MD5 – `MD5`  
AWS WAF calcula um MD5 hash a partir dos dados na entrada. O hash calculado está em um formato binário bruto.

None – `NONE`  
AWS WAF inspeciona a solicitação da web conforme recebida, sem nenhuma transformação de texto. 

Normalize path – `NORMALIZE_PATH`  
AWS WAF normaliza a string de entrada removendo várias barras, autorreferências de diretório e referências anteriores de diretório que não estão no início da entrada.

Normalize path Windows – `NORMALIZE_PATH_WIN`  
AWS WAF converte caracteres de barra invertida em barras progressivas e, em seguida, processa a string resultante usando a transformação. `NORMALIZE_PATH`

Remove nulls – `REMOVE_NULLS`  
AWS WAF remove todos os `NULL` bytes da entrada. 

Replace comments – `REPLACE_COMMENTS`  
AWS WAF substitui cada ocorrência de um comentário no estilo C (/\$1... \$1/) por um único espaço. Ele não comprime várias ocorrências consecutivas. Substitui comentários sem término por um espaço (ASCII 0x20). Isso não altera o encerramento independente de um comentário (\$1/).

Replace nulls – `REPLACE_NULLS`  
AWS WAF substitui cada `NULL` byte na entrada pelo caractere de espaço (ASCII 0x20).

SQL hex decode – `SQL_HEX_DECODE`  
AWS WAF decodifica dados hexadecimais SQL. Por exemplo, AWS WAF decodifica (`0x414243`) para (`ABC`).

URL decode – `URL_DECODE`  
AWS WAF decodifica um valor codificado em URL.

URL decode Unicode – `URL_DECODE_UNI`  
Como `URL_DECODE`, mas com suporte para codificação `%u` específica da Microsoft. Se o código estiver no intervalo de código ASCII de largura total de `FF01-FF5E`, o byte maior será utilizado para detectar e ajustar o byte menor. Caso contrário, somente o byte menor será utilizado, e o byte maior será zerado.

UTF8 to Unicode – `UTF8_TO_UNICODE`  
AWS WAF converte todas as sequências de caracteres UTF-8 em Unicode. Isso ajuda a normalizar a entrada e a minimizar falsos positivos e falso-negativos para idiomas diferentes do inglês.