

**Presentamos una nueva experiencia de consola para AWS WAF**

Ahora puede usar la experiencia actualizada para acceder a las AWS WAF funciones desde cualquier parte de la consola. Para obtener más información, consulte [Trabajar con la consola](https://docs.aws.amazon.com/waf/latest/developerguide/working-with-console.html). 

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Ajustar la configuración de la declaración de reglas en AWS WAF
<a name="waf-rule-statement-fields"></a>

En esta sección, se describe la configuración que se especifica cada vez que se utiliza una instrucción de regla que inspecciona un componente de la solicitud web. Para obtener información sobre el uso, consulte las instrucciones de reglas individuales en [Uso de sentencias de reglas de coincidencia en AWS WAF](waf-rule-statements-match.md). 

También se puede usar un subconjunto de estos componentes de solicitudes web en las reglas basadas en tasas, como claves de agregación de solicitudes personalizadas. Para obtener información, consulte [Agregar reglas basadas en tarifas en AWS WAF](waf-rule-statement-type-rate-based-aggregation-options.md).

Para la configuración del componente de solicitud, especifique el tipo de componente en sí y las opciones adicionales, en función del tipo de componente. Por ejemplo, al inspeccionar un tipo de componente que contiene texto, puede aplicarle transformaciones de texto antes de inspeccionarlo. 

**nota**  
A menos que se indique lo contrario, si una solicitud web no tiene el componente de solicitud especificado en la declaración de la regla, se considera AWS WAF que la solicitud no cumple con los criterios de la regla.

**Contents**
+ [Solicita componentes en AWS WAF](waf-rule-statement-fields-list.md)
  + [Método HTTP](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-http-method)
  + [Encabezado único](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-single-header)
  + [Todos los encabezados](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-headers)
  + [Orden de encabezados](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)
  + [Ruta de URI](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-uri-path)
  + [JA3 huella digital](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-ja3-fingerprint)
  + [JA4 huella digital](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-ja4-fingerprint)
  + [Cadena de consulta](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-query-string)
  + [Parámetro de consulta único](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-single-query-param)
  + [Todos los parámetros de consulta](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-all-query-params)
  + [Cuerpo](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-body)
  + [Cuerpo JSON](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-json-body)
+ [Uso de direcciones IP reenviadas en AWS WAF](waf-rule-statement-forwarded-ip-address.md)
+ [Inspección de pseudoencabezados HTTP/2 en AWS WAF](waf-rule-statement-request-components-for-http2-pseudo-headers.md)
+ [Uso de transformaciones de texto en AWS WAF](waf-rule-statement-transformation.md)

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

En esta sección, se describen los componentes de la solicitud web que puede especificar para su inspección. Especifique el componente solicitado para las instrucciones de regla estándar que buscan patrones en la solicitud web. Estos tipos de sentencias incluyen la coincidencia de cadenas, la coincidencia regex, la restricción de tamaño y las sentencias de ataque por inyección de código SQL. Para obtener información sobre cómo usar esta configuración de los componentes de la solicitud, consulte las instrucciones de reglas individuales en [Uso de sentencias de reglas de coincidencia en AWS WAF](waf-rule-statements-match.md).

A menos que se indique lo contrario, si una solicitud web no tiene el componente de solicitud especificado en la declaración de la regla, AWS WAF evalúa que la solicitud no cumple con los criterios de la regla.

**nota**  
Especifique un único componente de solicitud para cada instrucción de regla que lo requiera. Para inspeccionar más de un componente de una solicitud, cree una instrucción de regla para cada componente. 

La documentación de la AWS WAF consola y la API proporciona orientación sobre la configuración de los componentes de la solicitud en las siguientes ubicaciones: 
+ **Generador de reglas** en la consola: en la configuración de **Instrucción** para un tipo de regla normal, elija el componente que desee inspeccionar en el cuadro de diálogo **Inspeccionar** de la sección **Solicitar componentes**.
+ **Contenido de la instrucción de API**: `FieldToMatch`

En el resto de esta sección, se describen las opciones de la parte de la solicitud web que hay que inspeccionar. 

**Topics**
+ [Método HTTP](#waf-rule-statement-request-component-http-method)
+ [Encabezado único](#waf-rule-statement-request-component-single-header)
+ [Todos los encabezados](#waf-rule-statement-request-component-headers)
+ [Orden de encabezados](#waf-rule-statement-request-component-header-order)
+ [Cookies](#waf-rule-statement-request-component-cookies)
+ [Fragmento de URI](#waf-rule-statement-request-component-uri-fragment)
+ [Ruta de URI](#waf-rule-statement-request-component-uri-path)
+ [JA3 huella digital](#waf-rule-statement-request-component-ja3-fingerprint)
+ [JA4 huella digital](#waf-rule-statement-request-component-ja4-fingerprint)
+ [Cadena de consulta](#waf-rule-statement-request-component-query-string)
+ [Parámetro de consulta único](#waf-rule-statement-request-component-single-query-param)
+ [Todos los parámetros de consulta](#waf-rule-statement-request-component-all-query-params)
+ [Cuerpo](#waf-rule-statement-request-component-body)
+ [Cuerpo JSON](#waf-rule-statement-request-component-json-body)

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

Comprueba el método HTTP en la solicitud. El método HTTP indica el tipo de operación que la solicitud web pide que realice su recurso protegido, como por ejemplo `POST` o `GET`. 

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

Inspecciona un encabezado con un solo nombre en la solicitud. 

Para esta opción, especifique el nombre del encabezado, por ejemplo, `User-Agent` o `Referer`. La coincidencia de cadenas para el nombre no distingue entre mayúsculas y minúsculas y se realiza después de recortar los espacios iniciales y finales tanto del encabezado de la solicitud como de la regla.

## Todos los encabezados
<a name="waf-rule-statement-request-component-headers"></a>

Inspecciona todos los encabezados de las solicitudes, incluidas las cookies. Puede aplicar un filtro para inspeccionar un subconjunto de todos los encabezados. 

Para esta opción, debe proporcionar las siguientes especificaciones: 
+ **Patrones de coincidencia**: el filtro que se utilizará para obtener un subconjunto de encabezados para su inspección. AWS WAF busca estos patrones en las teclas de encabezados. 

  La configuración de los patrones de coincidencia puede ser una de las siguientes: 
  + **Todos**: haga coincidir todas las claves. Evalúe los criterios de inspección de las reglas para todos los encabezados. 
  + **Encabezados excluidos** Inspeccione solo los encabezados cuyas claves no coincidan con ninguna de las cadenas que ha especificado aquí. La cadena que coincide con la clave no distingue entre mayúsculas y minúsculas. La coincidencia se realiza después de recortar los espacios iniciales y finales del encabezado de la solicitud y de la regla de coincidencia.
  + **Encabezados incluidos** Inspeccione solo los encabezados que tengan una clave que coincida con una de las cadenas que ha especificado aquí. La cadena que coincide con la clave no distingue entre mayúsculas y minúsculas. La coincidencia se realiza después de recortar los espacios iniciales y finales del encabezado de la solicitud y de la regla de coincidencia.
+ **Alcance de coincidencia**: las partes de los encabezados que AWS WAF deben inspeccionarse según los criterios de inspección de la regla. Puede especificar **Claves**, **Valores** o **Todos** para inspeccionar tanto las claves como los valores para ver si coinciden. 

  **Todos** no precisa una coincidencia en las claves y una coincidencia en los valores. Es necesario encontrar una coincidencia en las claves, en los valores o en ambos. Para exigir una coincidencia en las claves y los valores, utilice una instrucción lógica `AND` para combinar dos reglas de coincidencia, una que inspeccione las claves y otra que inspeccione los valores. 
+ **Manejo de sobredimensionamiento**: ¿cómo se AWS WAF deben gestionar las solicitudes que tienen datos de encabezado más grandes de lo que se AWS WAF puede inspeccionar? AWS WAF puede inspeccionar como máximo los primeros 8 KB (8.192 bytes) de los encabezados de las solicitudes y, como máximo, los primeros 200 encabezados. El contenido está disponible para su inspección AWS WAF hasta que se alcance el primer límite. Puede elegir continuar con la inspección u omitir la inspección y marcar la solicitud como coincidente o no con la regla. Para obtener más información acerca de la administración del contenido de tamaño excesivo, consulte [Sobredimensionar los componentes de las solicitudes web en AWS WAF](waf-oversize-request-components.md).

## Orden de encabezados
<a name="waf-rule-statement-request-component-header-order"></a>

Inspeccione una cadena que contenga la lista de los nombres de los encabezados de la solicitud, ordenados tal como aparecen en la solicitud web que se AWS WAF recibe para su inspección. AWS WAF genera la cadena y luego la usa como campo para hacer coincidir el componente en su inspección. AWS WAF separa los nombres de los encabezados de la cadena con dos puntos y sin añadir espacios, por ejemplo`host:user-agent:accept:authorization:referer`.

Para esta opción, debe proporcionar las siguientes especificaciones: 
+ **Gestión del tamaño excesivo**: ¿cómo se AWS WAF deben gestionar las solicitudes que tienen datos de encabezado más numerosos o más grandes de lo que se AWS WAF puede inspeccionar? AWS WAF puede inspeccionar como máximo los primeros 8 KB (8.192 bytes) de los encabezados de las solicitudes y, como máximo, los primeros 200 encabezados. El contenido está disponible para su inspección AWS WAF hasta que se alcance el primer límite. Puede elegir continuar con la inspección de los encabezados que estén disponibles, o bien omitir la inspección y marcar la solicitud como coincidente o no con la regla. Para obtener más información acerca de la administración del contenido de tamaño excesivo, consulte [Sobredimensionar los componentes de las solicitudes web en AWS WAF](waf-oversize-request-components.md).

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

Inspecciona todas las cookies de solicitud. Puede aplicar un filtro para inspeccionar un subconjunto de todas las cookies. 

Para esta opción, debe proporcionar las siguientes especificaciones: 
+ **Patrones de coincidencia**: el filtro que se utilizará para obtener un subconjunto de cookies para su inspección. AWS WAF busca estos patrones en las claves de las cookies. 

  La configuración de los patrones de coincidencia puede ser una de las siguientes: 
  + **Todos**: haga coincidir todas las claves. Evalúe los criterios de inspección de las reglas para todas las cookies. 
  + **Cookies excluidas**: inspeccione solo las cookies cuyas claves no coincidan con ninguna de las cadenas que ha especificado aquí. La coincidencia de cadena con una clave distingue entre mayúsculas y minúsculas, y debe ser exacta. 
  + **Encabezados incluidos**: inspeccione solo las cookies que tengan una clave que coincida con una de las cadenas que ha especificado aquí. La coincidencia de cadena con una clave distingue entre mayúsculas y minúsculas, y debe ser exacta. 
+ **Alcance de coincidencia**: las partes de las cookies que AWS WAF deben inspeccionarse según los criterios de inspección de la regla. Puede especificar **Claves**, **Valores** o **Todos** tanto para las claves como para los valores. 

  **Todos** no precisa una coincidencia en las claves y una coincidencia en los valores. Es necesario encontrar una coincidencia en las claves, en los valores o en ambos. Para exigir una coincidencia en las claves y los valores, utilice una instrucción lógica `AND` para combinar dos reglas de coincidencia, una que inspeccione las claves y otra que inspeccione los valores. 
+ Gestión de **sobredimensionamiento**: ¿cómo se AWS WAF deben gestionar las solicitudes que contienen datos de cookies más grandes de los que se AWS WAF pueden inspeccionar? AWS WAF puede inspeccionar como máximo los primeros 8 KB (8.192 bytes) de las cookies solicitadas y, como máximo, las primeras 200 cookies. El contenido está disponible para su inspección AWS WAF hasta que se alcance el primer límite. Puede elegir continuar con la inspección u omitir la inspección y marcar la solicitud como coincidente o no con la regla. Para obtener más información acerca de la administración del contenido de tamaño excesivo, consulte [Sobredimensionar los componentes de las solicitudes web en AWS WAF](waf-oversize-request-components.md).

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

**nota**  
La inspección de fragmentos de URI solo está disponible para CloudFront distribuciones y balanceadores de carga de aplicaciones.

Inspecciona la parte de una URL que sigue al símbolo “\$1” y proporciona información adicional sobre el recurso, por ejemplo, \$1section2. Para obtener información, consulte [Identificador uniforme de recursos (URI): sintaxis genérica](https://tools.ietf.org/html/rfc3986#section-3). 

Si no utilizas una transformación de texto con esta opción, AWS WAF no normaliza el fragmento de URI y lo inspecciona exactamente como lo recibe del cliente en la solicitud. Para obtener información sobre transformaciones de texto, consulte [Uso de transformaciones de texto en AWS WAF](waf-rule-statement-transformation.md).

**Requisitos de las instrucciones de reglas**  
Debe proporcionar un comportamiento alternativo para esta instrucción de regla. El comportamiento alternativo es el estado de coincidencia que quieres asignar AWS WAF a la solicitud web si falta el fragmento en el URI o si el servicio asociado no es Application Load CloudFront Balancer o. Si eliges hacer coincidir, considerará que AWS WAF la solicitud coincide con la declaración de la regla y aplica la acción de la regla a la solicitud. Si eliges no coincidir, considerará que AWS WAF la solicitud no coincide con la declaración de la regla.

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

Inspecciona la parte de una URL que identifica un recurso, por ejemplo, `/images/daily-ad.jpg`. Para obtener información, consulte [Identificador uniforme de recursos (URI): sintaxis genérica](https://tools.ietf.org/html/rfc3986#section-3). 

Si no utilizas una transformación de texto con esta opción, AWS WAF no normaliza el URI y lo inspecciona exactamente como lo recibe del cliente en la solicitud. Para obtener información sobre transformaciones de texto, consulte [Uso de transformaciones de texto en AWS WAF](waf-rule-statement-transformation.md).

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

Inspecciona la huella digital de la solicitud. JA3 

**nota**  
JA3 la inspección de huellas dactilares solo está disponible para CloudFront las distribuciones de Amazon y los balanceadores de carga de aplicaciones.

La JA3 huella digital es un hash de 32 caracteres derivado del protocolo TLS Hello de una solicitud entrante. Esta huella digital sirve como identificador único para la configuración de TLS del cliente. AWS WAF calcula y registra esta huella digital para cada solicitud que contenga suficiente información de TLS Client Hello para el cálculo. Casi todas las solicitudes web incluyen esta información.

**¿Cómo obtener la JA3 huella digital de un cliente**  
Puede obtener la JA3 huella digital de las solicitudes de un cliente en los registros del paquete de protección (ACL web). Si AWS WAF es capaz de calcular la huella digital, la incluye en los registros. Para obtener información acerca de los campos de registro, consulte [Campos de registro para el tráfico del paquete de protección (ACL web)](logging-fields.md).

**Requisitos de las instrucciones de reglas**  
Solo puedes inspeccionar la JA3 huella digital dentro de una sentencia de coincidencia de cadenas que esté configurada para que coincida exactamente con la cadena que proporciones. Proporcione la cadena de JA3 huellas digitales de los registros de la especificación de la sentencia de coincidencia de cadenas para que coincida con cualquier solicitud futura que tenga la misma configuración de TLS. Para obtener más información acerca de las instrucciones de reglas de coincidencia de cadena, consulte [Instrucción de regla de coincidencia de cadenas](waf-rule-statement-type-string-match.md).

Debe proporcionar un comportamiento alternativo para esta instrucción de regla. El comportamiento alternativo es el estado de coincidencia que deseas asignar AWS WAF a la solicitud web si AWS WAF no puedes calcular la JA3 huella digital. Si opta por hacer coincidir, AWS WAF trata la solicitud web como coincidente con la instrucción de regla y aplica la acción de la regla a la solicitud. Si eliges no coincidir, considerará que la AWS WAF solicitud no coincide con la declaración de la regla.

Para usar esta opción de coincidencia, debe registrar el tráfico del paquete de protección (ACL web). Para obtener información, consulte [Registro AWS WAF del tráfico del paquete de protección (ACL web)](logging.md).

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

Inspecciona la huella digital de la solicitud. JA4 

**nota**  
JA4 la inspección de huellas dactilares solo está disponible para CloudFront las distribuciones de Amazon y los balanceadores de carga de aplicaciones.

La JA4 huella digital es un hash de 36 caracteres derivado del protocolo TLS Hello de una solicitud entrante. Esta huella digital sirve como identificador único para la configuración de TLS del cliente. JA4 La toma de huellas digitales es una extensión de la JA3 huella digital que puede resultar en un menor número de huellas digitales únicas en algunos navegadores. AWS WAF calcula y registra esta huella digital para cada solicitud que contenga suficiente información de TLS Client Hello para el cálculo. Casi todas las solicitudes web incluyen esta información.

**¿Cómo obtener la JA4 huella digital de un cliente**  
Puede obtener la JA4 huella digital de las solicitudes de un cliente en los registros del paquete de protección (ACL web). Si AWS WAF es capaz de calcular la huella digital, la incluye en los registros. Para obtener información acerca de los campos de registro, consulte [Campos de registro para el tráfico del paquete de protección (ACL web)](logging-fields.md).

**Requisitos de las instrucciones de reglas**  
Solo puedes inspeccionar la JA4 huella digital dentro de una sentencia de coincidencia de cadenas que esté configurada para que coincida exactamente con la cadena que proporciones. Proporcione la cadena de JA4 huellas digitales de los registros de la especificación de la sentencia de coincidencia de cadenas para que coincida con cualquier solicitud futura que tenga la misma configuración de TLS. Para obtener más información acerca de las instrucciones de reglas de coincidencia de cadena, consulte [Instrucción de regla de coincidencia de cadenas](waf-rule-statement-type-string-match.md).

Debe proporcionar un comportamiento alternativo para esta instrucción de regla. El comportamiento alternativo es el estado de coincidencia que deseas asignar AWS WAF a la solicitud web si AWS WAF no puedes calcular la JA4 huella digital. Si opta por hacer coincidir, AWS WAF trata la solicitud web como coincidente con la instrucción de regla y aplica la acción de la regla a la solicitud. Si eliges no coincidir, considerará que la AWS WAF solicitud no coincide con la declaración de la regla.

Para usar esta opción de coincidencia, debe registrar el tráfico del paquete de protección (ACL web). Para obtener información, consulte [Registro AWS WAF del tráfico del paquete de protección (ACL web)](logging.md).

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

Inspecciona la parte de la URL que aparece después de un carácter `?`, si hay alguno.

**nota**  
En instrucciones de coincidencia de scripting entre sitios, recomendamos elegir **Todos los parámetros de consulta** en vez de **Cadena de consulta**. Si selecciona **Todos los parámetros de la consulta**, se añade WCUs un 10% al coste base.

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

Inspecciona un único parámetro de consulta que haya definido como parte de la cadena de consulta. AWS WAF inspecciona el valor del parámetro que especifique. 

Para esta opción, también se especifica un **Argumento de consulta**. Si la dirección URL es `www.xyz.com?UserName=abc&SalesRegion=seattle`, puede especificar `UserName` o `SalesRegion` como argumento de la consulta. La longitud máxima del nombre del argumento es de 30 caracteres. El nombre no distingue entre mayúsculas y minúsculas, por lo que si especifica `UserName`, AWS WAF busca coincidencias con todas las variantes de `UserName`, como `username` y `UsERName`.

Si la cadena de consulta contiene más de una instancia del argumento de consulta que ha especificado, AWS WAF inspecciona todos los valores para ver si coinciden con ellos mediante OR la lógica. Por ejemplo, en la dirección URL `www.xyz.com?SalesRegion=boston&SalesRegion=seattle`, AWS WAF evalúa el nombre que ha especificado con `boston` y `seattle`. Si alguna de las dos es una coincidencia, la inspección es una coincidencia.

## Todos los parámetros de consulta
<a name="waf-rule-statement-request-component-all-query-params"></a>

Inspecciona todos los parámetros de consulta de la solicitud. Es similar a la elección del componente de parámetro de consulta único, pero AWS WAF inspecciona los valores de todos los argumentos de la cadena de consulta. Por ejemplo, si la dirección URL es `www.xyz.com?UserName=abc&SalesRegion=seattle`, AWS WAF activa una coincidencia si el valor de `UserName` o `SalesRegion` coincide con los criterios de inspección. 

Al elegir esta opción, se añade WCUs un 10% al coste base.

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

Inspecciona el cuerpo de la solicitud evaluada como texto sin formato. También puede evaluar el cuerpo como JSON utilizando el tipo de contenido JSON. 

El cuerpo de la solicitud es la parte de la solicitud que sigue inmediatamente a los encabezados de solicitudes. Contiene los datos adicionales necesarios para la solicitud web, como los datos de un formulario. 
+ En la consola, seleccione **Cuerpo** en la opción **Solicitud** y, a continuación, **Texto sin formato** en **Tipo de contenido**. 
+ En la API, en la especificación `FieldToMatch` de la regla, especifique `Body` para inspeccionar el cuerpo de la solicitud como texto sin formato.

Para Application Load Balancer y AWS AppSync, AWS WAF puede inspeccionar los primeros 8 KB del cuerpo de una solicitud. Para CloudFront API Gateway, Amazon Cognito, App Runner y Verified Access, de forma predeterminada, AWS WAF pueden inspeccionar los primeros 16 KB y usted puede aumentar el límite hasta 64 KB en la configuración de su paquete de protección (ACL web). Para obtener más información, consulte [Consideraciones para gestionar la inspección corporal en AWS WAF](web-acl-setting-body-inspection-limit.md).

Debe especificar la gestión del sobredimensionamiento para este tipo de componente. El manejo de sobredimensionamiento define la forma en que AWS WAF se gestionan las solicitudes cuyo cuerpo contiene un volumen de datos superior al que se AWS WAF puede inspeccionar. Puede elegir continuar con la inspección u omitir la inspección y marcar la solicitud como coincidente o no con la regla. Para obtener más información acerca de la administración del contenido de tamaño excesivo, consulte [Sobredimensionar los componentes de las solicitudes web en AWS WAF](waf-oversize-request-components.md). 

También puede evaluar el cuerpo como JSON analizado. Para obtener información sobre esto, consulte la sección siguiente. 

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

Inspecciona el cuerpo de la solicitud, evaluado como JSON. También puede evaluar el cuerpo como texto sin formato. 

El cuerpo de la solicitud es la parte de la solicitud que sigue inmediatamente a los encabezados de solicitudes. Contiene los datos adicionales necesarios para la solicitud web, como los datos de un formulario. 
+ En la consola, se selecciona en la **Opción de solicitud** **Cuerpo**, seleccionando la opción **Tipo de contenido** **JSON**. 
+ En la API, en la especificación `FieldToMatch` de la regla, especifique `JsonBody`.

Para Application Load Balancer y AWS AppSync, AWS WAF puede inspeccionar los primeros 8 KB del cuerpo de una solicitud. Para CloudFront API Gateway, Amazon Cognito, App Runner y Verified Access, de forma predeterminada, AWS WAF pueden inspeccionar los primeros 16 KB y usted puede aumentar el límite hasta 64 KB en la configuración de su paquete de protección (ACL web). Para obtener más información, consulte [Consideraciones para gestionar la inspección corporal en AWS WAF](web-acl-setting-body-inspection-limit.md).

Debe especificar la gestión del sobredimensionamiento para este tipo de componente. El manejo de sobredimensionamiento define la forma en que AWS WAF se gestionan las solicitudes cuyo cuerpo contiene un volumen de datos superior al que se AWS WAF puede inspeccionar. Puede elegir continuar con la inspección u omitir la inspección y marcar la solicitud como coincidente o no con la regla. Para obtener más información acerca de la administración del contenido de tamaño excesivo, consulte [Sobredimensionar los componentes de las solicitudes web en AWS WAF](waf-oversize-request-components.md). 

Al elegir esta opción, se duplica el coste WCUs base de la declaración de coincidencia. Por ejemplo, si el costo base de la declaración de coincidencia es 5 WCUs sin el análisis de JSON, el uso del análisis de JSON duplica el costo hasta 10. WCUs 

Para esta opción, debe proporcionar especificaciones adicionales como se describe en la siguiente sección.

**¿Cómo AWS WAF gestiona la inspección corporal de JSON**  
Cuando AWS WAF inspecciona el cuerpo de la solicitud web como JSON, realiza los pasos necesarios para analizarlo y extraer los elementos de JSON para su inspección. AWS WAF lleva a cabo estos pasos de acuerdo con sus opciones de configuración. 

A continuación se enumeran los pasos que se llevan AWS WAF a cabo. 

1. **Analiza el contenido del cuerpo**: AWS WAF analiza el contenido del cuerpo de la solicitud web para extraer los elementos JSON para su inspección. AWS WAF hace todo lo posible para analizar todo el contenido del cuerpo, pero el análisis puede fallar debido a una variedad de estados de error en el contenido. Los ejemplos incluyen caracteres no válidos, claves duplicadas, truncamiento y contenido cuyo nodo raíz no es un objeto o una matriz. 

   La opción **Body Parsing Fallback Behavior** determina qué pasa si AWS WAF no se analiza completamente el cuerpo del JSON: 
   + **Ninguno (comportamiento predeterminado)**: AWS WAF evalúa el contenido solo hasta el punto en que se ha detectado un error de análisis. 
   + **Evaluar como cadena**: inspecciona el cuerpo como texto sin formato. AWS WAF aplica las transformaciones de texto y los criterios de inspección que ha definido para la inspección de JSON a la cadena de texto principal.
   + **Coincidencia**: considera que la solicitud web coincide con la declaración de la regla. AWS WAF aplica la acción de la regla a la solicitud.
   + **Sin coincidencia**: trate la solicitud web como no coincidente con la instrucción de regla.
**nota**  
Este comportamiento alternativo solo se activa cuando se produce AWS WAF un error al analizar la cadena JSON. 

**El análisis no valida completamente el JSON.**  
AWS WAF el análisis no valida completamente la cadena JSON de entrada, por lo que el análisis puede realizarse correctamente incluso si el JSON no es válido.

   Por ejemplo, AWS WAF analiza el siguiente JSON no válido sin errores: 
   + Falta de coma: `{"key1":"value1""key2":"value2"}`
   + Falta de dos puntos: `{"key1":"value1","key2""value2"}`
   + Dos puntos adicionales: `{"key1"::"value1","key2""value2"}`

   En casos como estos, en los que el análisis se realiza correctamente pero el resultado no es un JSON completamente válido, el resultado de los pasos siguientes de la evaluación puede variar. Es posible que la extracción omita algunos elementos o que la evaluación de la regla arroje resultados inesperados. Recomendamos validar el JSON que recibe en su aplicación y administrar el JSON no válido según sea necesario. 

1. **Extrae los elementos JSON**: AWS WAF identifica el subconjunto de elementos JSON que deseas inspeccionar de acuerdo con tu configuración: 
   + La opción **JSON match scope** especifica los tipos de elementos del JSON que se AWS WAF deben inspeccionar. 

     Puede especificar **Claves**, **Valores** o **Todos** tanto para las claves como para los valores. 

     **Todos** no precisa una coincidencia en las claves y una coincidencia en los valores. Es necesario encontrar una coincidencia en las claves, en los valores o en ambos. Para exigir una coincidencia en las claves y los valores, utilice una instrucción lógica `AND` para combinar dos reglas de coincidencia, una que inspeccione las claves y otra que inspeccione los valores. 
   + La opción **Contenido a inspeccionar** especifica cómo filtrar el conjunto de elementos hasta el subconjunto que se quiere AWS WAF inspeccionar. 

     Debe especificar uno de los siguientes:
     + **Contenido JSON completo**: se evalúan todos los elementos. 
     + **Solo elementos incluidos**: se evalúan solo los elementos cuyas rutas coinciden con los criterios del puntero JSON que usted proporciona. No utilice esta opción para indicar *todas* las rutas de JSON. En su lugar, utilice **Contenido JSON completo**. 

       Para obtener información sobre la sintaxis del puntero JSON, consulte la documentación del Grupo de trabajo de ingeniería de Internet (IETF) sobre el puntero sobre [notación de JavaScript objetos (JSON](https://tools.ietf.org/html/rfc6901)). 

       Por ejemplo, en la consola, puede proporcionar lo siguiente: 

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

       En la API o la CLI, puede proporcionar lo siguiente: 

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

   Por ejemplo, supongamos que la configuración del **Contenido a inspeccionar** es **Solo elementos incluidos**, y la configuración de los elementos incluidos es `/a/b`. 

   En el siguiente ejemplo de cuerpo JSON: 

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

   A continuación, se muestran los conjuntos de elementos que se AWS WAF inspeccionarían para cada configuración **del ámbito de coincidencia de JSON**. Tenga en cuenta que la clave `b`, que forma parte de la ruta de los elementos incluidos, no se evalúa.
   + **Todos**: `e`, `f,` y `g`.
   + **Claves**: `e` y `f`.
   + **Valores**: `g`.

1. **Inspeccione el conjunto de elementos JSON**: AWS WAF aplica cualquier transformación de texto que haya especificado a los elementos JSON extraídos y, a continuación, compara el conjunto de elementos resultante con los criterios de coincidencia de la declaración de regla. Este es el mismo comportamiento de transformación y evaluación que se aplica para otros componentes de solicitudes web. Si alguno de los elementos JSON extraídos coincide, la solicitud web coincide con la regla. 

# Uso de direcciones IP reenviadas en AWS WAF
<a name="waf-rule-statement-forwarded-ip-address"></a>

Esta sección se aplica a las instrucciones de reglas que utilizan la dirección IP de una solicitud web. De forma predeterminada, AWS WAF utiliza la dirección IP del origen de la solicitud web. Si el tráfico pasa por uno o más proxies o equilibradores de carga, el origen de la solicitud web contiende la dirección del último proxy y no la dirección de origen del cliente. En este caso, la dirección del cliente originario normalmente se reenvía en otro encabezado HTTP. Este encabezado suele ser `X-Forwarded-For` (XFF), pero puede ser diferente. 

**Instrucciones de reglas que usan direcciones IP**  
Las instrucciones de reglas que utilizan direcciones IP son las siguientes:
+ [Coincidencia de conjuntos de IP](waf-rule-statement-type-ipset-match.md): inspecciona la dirección IP para ver si coincide con las direcciones definidas en un conjunto de IP.
+ [Coincidencia geográfica](waf-rule-statement-type-geo-match.md): utiliza la dirección IP para determinar el país y la región de origen, y compara el país de origen con una lista de países.
+ [Coincidencia ASN](waf-rule-statement-type-asn-match.md)- Utiliza la dirección IP para determinar el número de sistema autónomo (ASN) y compara el ASN con una lista de. ASNs
+ [Uso de instrucciones de regla basada en tasas](waf-rule-statement-type-rate-based.md): puede agregar las solicitudes por sus direcciones IP para garantizar que ninguna dirección IP individual envíe solicitudes a una tasa demasiado alta. Puede utilizar la agregación de direcciones IP por sí sola o en combinación con otras claves de agregación. 

Puede AWS WAF indicarle que utilice una dirección IP reenviada para cualquiera de estas instrucciones de regla, ya sea desde el `X-Forwarded-For` encabezado o desde otro encabezado HTTP, en lugar de utilizar el origen de la solicitud web. Para obtener más información sobre cómo proporcionar las especificaciones, consulte la guía para cada tipo de instrucción de regla individual.

**nota**  
Si falta un encabezado, AWS WAF evalúa cualquier declaración que utilice ese encabezado como «No coincide». Si utiliza una sentencia NOT con el resultado «No coincide», AWS WAF convierte la evaluación en «Coincide». La ausencia de encabezados no desencadena un comportamiento alternativo; solo lo hacen los valores de encabezado no válidos.

**Comportamiento alternativo**  
Cuando utilizas la dirección IP reenviada, indicas el estado de coincidencia AWS WAF que deseas asignar a la solicitud web si la solicitud no tiene una dirección IP válida en la posición especificada: 
+ **COINCIDIR**: considera que la solicitud web coincide con el enunciado de la regla. AWS WAF aplica la acción de la regla a la solicitud.
+ **SIN COINCIDENCIA**: trate la solicitud web como no coincidente con la instrucción de regla. 

**Direcciones IP utilizadas en AWS WAF Bot Control**  
El grupo de reglas gestionado por Bot Control verifica los bots mediante las direcciones IP de AWS WAF. Si utiliza el control de bots y ha verificado bots enrutados a través de un proxy o un equilibrador de carga, debe permitirlos de forma explícita mediante una regla personalizada. Por ejemplo, puede configurar una regla de coincidencia de conjuntos de IP personalizada que utilice las direcciones IP reenviadas para detectar y admitir sus bots verificados. Puede usar la regla para personalizar la administración de los bots de varias maneras. Para obtener más información y ejemplos, consulte [AWS WAF Control de bots](waf-bot-control.md). 

**Consideraciones generales sobre el uso de direcciones IP reenviadas**  
Antes de utilizar una dirección IP reenviada, tenga en cuenta las siguientes advertencias generales: 
+ Los proxies pueden modificar un encabezado a lo largo del proceso y los proxies pueden gestionar el encabezado de diferentes maneras. 
+ Los atacantes pueden alterar el contenido del encabezado en un intento de eludir las inspecciones de AWS WAF . 
+ La dirección IP incluida en el encabezado puede tener un formato incorrecto o no ser válida.
+ Es posible que el encabezado que especifique no esté presente en absoluto en una solicitud.

**Consideraciones sobre el uso de direcciones IP reenviadas con AWS WAF**  
En la siguiente lista se describen los requisitos y las advertencias para el uso de direcciones IP reenviadas en AWS WAF:
+ Para cualquier regla individual, puede especificar un encabezado para la dirección IP reenviada. La especificación del encabezado no distingue entre mayúsculas y minúsculas.
+ En el caso de las instrucciones de reglas basadas en tasas, las instrucciones de alcance anidadas no heredan la configuración de IP reenviada. Especifique la configuración de cada instrucción que utilice una dirección IP reenviada. 
+ Para las reglas de coincidencia geográfica, de ASN y basadas en tasas, AWS WAF utiliza la primera dirección del encabezado. Por ejemplo, si un encabezado contiene usos `10.1.1.1, 127.0.0.0, 10.10.10.10` AWS WAF `10.1.1.1`
+ En el caso de la coincidencia de conjuntos de IP, debe indicar si debe coincidir con la primera, la última o con cualquier otra dirección del encabezado. Si especifica alguno, AWS WAF inspecciona todas las direcciones del encabezado para ver si coinciden, hasta un máximo de 10 direcciones. Si el encabezado contiene más de 10 direcciones, AWS WAF inspecciona las 10 últimas. 
+ Los encabezados que contienen varias direcciones deben usar una coma de separación entre las direcciones. Si una solicitud utiliza un separador que no sea una coma, AWS WAF considera que las direcciones IP del encabezado tienen un formato incorrecto.
+ Si las direcciones IP incluidas en el encabezado tienen un formato incorrecto o no son válidas, AWS WAF indica que la solicitud web coincide con la regla o no coincide, de acuerdo con el comportamiento alternativo que especifique en la configuración de IP reenviada.
+ Si el encabezado que especificas no está presente en una solicitud, AWS WAF no se aplica en absoluto la regla a la solicitud. Esto significa que AWS WAF no aplica la acción de la regla ni el comportamiento alternativo.
+ Una instrucción de regla que utilice un encabezado IP reenviado como dirección IP no utilizará la dirección IP indicada por el origen de la solicitud web.

**Prácticas recomendadas para usar direcciones IP reenviadas con AWS WAF**  
Al utilizar direcciones IP reenviadas, siga las siguientes prácticas recomendadas: 
+ Considera detenidamente todos los estados posibles de los encabezados de sus solicitudes antes de habilitar la configuración de IP reenviada. Es posible que tenga que usar más de una regla para obtener el comportamiento que desea.
+ Para inspeccionar varios encabezados IP reenviados o para inspeccionar el origen de una solicitud web y un encabezado IP reenviado, use una regla para cada origen de direcciones IP. 
+ Para bloquear las solicitudes web que tengan un encabezado no válido, defina la acción de regla para bloquear y establezca el comportamiento alternativo para que coincida con la configuración de IP reenviada. 

**Ejemplo de JSON para direcciones IP reenviadas**  
La siguiente instrucción de coincidencia geográfica solo coincide si el encabezado `X-Forwarded-For` contiene una IP cuyo país de origen es `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"
      }
    }
  }
}
```

La siguiente regla basada en tasas agrega las solicitudes en función de la primera IP del encabezado `X-Forwarded-For`. La regla solo cuenta las solicitudes que coinciden con la instrucción de coincidencia geográfica anidada y solo bloquea las solicitudes que coinciden con la instrucción de coincidencia geográfica. La instrucción de coincidencia geográfica anidada también utiliza el encabezado `X-Forwarded-For` para determinar si la dirección IP indica un país de origen de `US`. Si es así, o si el encabezado está presente pero tiene un formato incorrecto, la instrucción de coincidencia geográfica devuelve una coincidencia. 

```
{
  "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"
      }
    }
  }
}
```

# Inspección de pseudoencabezados HTTP/2 en AWS WAF
<a name="waf-rule-statement-request-components-for-http2-pseudo-headers"></a>

En esta sección se explica cómo se pueden inspeccionar los pseudoencabezados de AWS WAF HTTP/2.

 AWS Los recursos protegidos que admiten el tráfico de HTTP/2 no reenvían los pseudoencabezados de HTTP/2 AWS WAF para su inspección, pero proporcionan el contenido de los pseudoencabezados de los componentes de las solicitudes web que se inspeccionan. AWS WAF 

Puede utilizarlos AWS WAF para inspeccionar únicamente los pseudoencabezados que se muestran en la siguiente tabla. 


**El contenido de los pseudoencabezados de HTTP/2 está asignado a los componentes de las solicitudes web**  

| Pseudoencabezado de HTTP/2 | Componente de solicitud web que inspeccionar | Documentación | 
| --- | --- | --- | 
|  `:method`  |  Método HTTP   |  [Método HTTP](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-http-method)  | 
|  `:authority`  |  Encabezado `Host`   |  [Encabezado único](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-single-header)  [Todos los encabezados](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-headers)  | 
|  Ruta de URI `:path`  | Ruta de URI  | [Ruta de URI](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-uri-path) | 
|  Consulta de `:path`  |  Cadena de consulta  |  [Cadena de consulta](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-query-string) [Parámetro de consulta único](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-single-query-param) [Todos los parámetros de consulta](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-all-query-params)  | 

# Uso de transformaciones de texto en AWS WAF
<a name="waf-rule-statement-transformation"></a>

En esta sección se explica cómo proporcionar transformaciones AWS WAF para aplicarlas antes de inspeccionar la solicitud.

En las instrucciones que buscan patrones o establecen restricciones, puedes proporcionar transformaciones para AWS WAF que se apliquen antes de inspeccionar la solicitud. Una transformación reformatea una solicitud web para eliminar parte del formato inusual que los atacantes utilizan con el objetivo de eludir AWS WAF. 

Si lo utiliza con la selección de componentes de la solicitud del cuerpo JSON, AWS WAF aplica las transformaciones después de analizar y extraer los elementos de la JSON para inspeccionarlos. Para obtener más información, consulte [Cuerpo JSON](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-json-body).

Si proporciona más de una transformación, también establece la orden para que AWS WAF las aplique. 

**WCUs**— Cada transformación de texto es de 10WCUs.

La documentación de la AWS WAF consola y la API también proporciona orientación sobre estos ajustes en las siguientes ubicaciones: 
+ **Generador de reglas** en la consola: **Transformación de texto**. Esta opción está disponible cuando se utilizan componentes de solicitud. 
+ **Contenido de la instrucción de API**: `TextTransformations`Opciones para transformaciones de texto

Cada lista de transformaciones muestra las especificaciones de la consola y la API seguidas de la descripción.

Base64 decode – `BASE64_DECODE`  
AWS WAF decodifica una cadena codificada en Base64.

Base64 decode extension – `BASE64_DECODE_EXT`  
AWS WAF decodifica una cadena codificada en Base64, pero usa una implementación flexible que ignora los caracteres que no son válidos. 

Command line – `CMD_LINE`  
Esta opción mitiga situaciones en las que los atacantes podrían inyectar un comando de línea de comandos del sistema operativo y utilizar un formato inusual para ocultar parte o la totalidad del comando.   
Utilice esta opción para realizar las siguientes transformaciones:  
+ Eliminar los siguientes caracteres: `\ " ' ^`
+ Eliminar los espacios delante de los siguientes caracteres: `/ (`
+ Sustituir los siguientes caracteres por un espacio: `, ;`
+ Sustituir varios espacios por un espacio
+ Convertir letras mayúsculas, `A-Z`, a minúsculas, `a-z`

Compress whitespace – `COMPRESS_WHITE_SPACE`  
AWS WAF comprime los espacios en blanco sustituyendo varios espacios por un espacio y sustituyendo los siguientes caracteres por un carácter de espacio (ASCII 32):  
+ Avance de página (ASCII 12)
+ Pestaña (ASCII 9)
+ Nueva línea (ASCII 10)
+ Retorno de carro (ASCII 13)
+ Pestaña vertical (ASCII 11)
+ Espacio duro (ASCII 160)

CSS decode – `CSS_DECODE`  
AWS WAF decodifica los caracteres codificados mediante las reglas de escape de CSS 2.x. `syndata.html#characters` Esta función utiliza hasta dos bytes en el proceso de decodificación, por lo que puede ayudar a descubrir caracteres ASCII que se codificaron en CSS y que normalmente no se codificarían. También es útil para contrarrestar la evasión, que es una combinación de una barra invertida y caracteres no hexadecimales. Por ejemplo, `ja\vascript` para `javascript`.

Escape sequences decode – `ESCAPE_SEQ_DECODE`  
AWS WAF decodifica las siguientes secuencias de escape ANSI C:`\a`,,`\b`,`\f`,`\n`,`\r`,`\t`,, `\v``\\`, `\xHH` (hexadecimal) `\?` `\'``\"`, `\0OOO` (octal). Las codificaciones que no son válidas permanecen en la salida.

Hex decode – `HEX_DECODE`  
AWS WAF decodifica una cadena de caracteres hexadecimales en un binario.

HTML entity decode – `HTML_ENTITY_DECODE`  
AWS WAF reemplaza los caracteres que se representan en formato hexadecimal `&#xhhhh;` o decimal por `&#nnnn;` los caracteres correspondientes.  
AWS WAF reemplaza los siguientes caracteres codificados en HTML por caracteres no codificados. Esta lista utiliza la codificación HTML en minúsculas, pero no distingue entre mayúsculas y minúsculas; por ejemplo, `&QuOt;` y `&quot;` reciben el mismo tratamiento.       
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/waf/latest/developerguide/waf-rule-statement-transformation.html)

JS decode – `JS_DECODE`  
AWS WAF decodifica secuencias de escape. JavaScript Si un código `\uHHHH` está en el rango del código ASCII de ancho completo de `FF01-FF5E`, el byte superior se utiliza para detectar y ajustar el byte inferior. Si no, solo se utiliza el byte inferior y el byte superior se pone en cero, lo que provoca una posible pérdida de información.

Lowercase – `LOWERCASE`  
AWS WAF convierte letras mayúsculas (A-Z) en minúsculas (a-z).

MD5 – `MD5`  
AWS WAF calcula un MD5 hash a partir de los datos de la entrada. El hash calculado está en forma binaria sin procesar.

None – `NONE`  
AWS WAF inspecciona la solicitud web tal como se recibió, sin ninguna transformación de texto. 

Normalize path – `NORMALIZE_PATH`  
AWS WAF normaliza la cadena de entrada eliminando las barras diagonales múltiples, las autorreferencias de los directorios y las referencias inversas de los directorios que no estén al principio de la entrada.

Normalize path Windows – `NORMALIZE_PATH_WIN`  
AWS WAF convierte los caracteres de barra invertida en barras diagonales y, a continuación, procesa la cadena resultante mediante la transformación. `NORMALIZE_PATH`

Remove nulls – `REMOVE_NULLS`  
AWS WAF elimina todos los `NULL` bytes de la entrada. 

Replace comments – `REPLACE_COMMENTS`  
AWS WAF reemplaza cada aparición de un comentario de estilo C (/\$1... \$1/) por un solo espacio. No comprime varias repeticiones consecutivas. Sustituye los comentarios no finalizados terminados por un espacio (ASCII 0x20). No cambia la finalización independiente de un comentario (\$1/).

Replace nulls – `REPLACE_NULLS`  
AWS WAF reemplaza cada `NULL` byte de la entrada por el carácter de espacio (ASCII 0x20).

SQL hex decode – `SQL_HEX_DECODE`  
AWS WAF decodifica los datos hexadecimales de SQL. Por ejemplo, AWS WAF decodifica (`0x414243`) en (). `ABC`

URL decode – `URL_DECODE`  
AWS WAF decodifica un valor codificado en una URL.

URL decode Unicode – `URL_DECODE_UNI`  
Como `URL_DECODE`, pero compatible con la codificación de `%u` específica de Microsoft. Si el código está en el rango `FF01-FF5E` del código ASCII de ancho completo, el byte superior se utiliza para detectar y ajustar el byte inferior. De lo contrario, solo se utiliza el byte inferior y el byte superior se pone en cero.

UTF8 to Unicode – `UTF8_TO_UNICODE`  
AWS WAF convierte todas las secuencias de caracteres UTF-8 a Unicode. Esto ayuda a normalizar las entradas y a minimizar los falsos positivos y negativos de los idiomas distintos al inglés.