Comportamiento de acción CAPTCHA y Challenge
En esta sección se explica qué hacen las acciones CAPTCHA y Challenge.
Cuando una solicitud web coincide con los criterios de inspección de una regla con la acción CAPTCHA o Challenge, AWS WAF determina cómo gestionar la solicitud en función del estado de su token y de la configuración del tiempo de inmunidad. AWS WAF también tiene en cuenta si la solicitud puede gestionar el rompecabezas de CAPTCHA o los intersticiales de los scripts de desafío. Los scripts están diseñados para ser tratados como contenido HTML y solo un cliente que espere contenido HTML puede gestionarlos correctamente.
nota
Se le cobrarán tarifas adicionales cuando utilice la acción de regla CAPTCHA o Challenge en una de sus reglas o como anulación de una acción de regla en un grupo de reglas. Para más información, consulte Precios de AWS WAF
Cómo gestiona la acción la solicitud web
AWS WAF aplica la acción CAPTCHA o Challenge a una solicitud web de la siguiente manera:
-
Token válido: AWS WAF lo gestiona de forma similar a una acción Count. AWS WAF aplica las personalizaciones de etiquetas y solicitudes que haya configurado para la acción de regla y, a continuación, continúa evaluando la solicitud con las reglas restantes de la ACL web.
-
Token faltante, inválido o caducado: AWS WAF interrumpe la evaluación de la ACL web de la solicitud e impide que vaya al destino previsto.
AWS WAF genera una respuesta que envía de vuelta al cliente, de acuerdo con el tipo de acción de regla:
-
Challenge: AWS WAF incluye lo que se detalla a continuación en la respuesta:
-
El encabezado
x-amzn-waf-action
con un valor dechallenge
.nota
Este encabezado no está disponible para las aplicaciones de JavaScript que se ejecutan en el navegador del cliente. Para obtener detalles, consulte la siguiente sección.
-
El código de estado HTTP
202 Request Accepted
. -
Si la solicitud contiene un encabezado
Accept
con un valor detext/html
, la respuesta incluye una página intersticial de JavaScript con un script de desafío.
-
-
CAPTCHA: AWS WAF incluye lo que se detalla a continuación en la respuesta:
-
El encabezado
x-amzn-waf-action
con un valor decaptcha
.nota
Este encabezado no está disponible para las aplicaciones de JavaScript que se ejecutan en el navegador del cliente. Para obtener detalles, consulte la siguiente sección.
-
El código de estado HTTP
405 Method Not Allowed
. -
Si la solicitud contiene un encabezado de
Accept
con un valor detext/html
, la respuesta incluye una página intersticial de JavaScript con un script de CAPTCHA.
-
-
Para configurar el momento de vencimiento del token a nivel de reglas o ACL web, consulte Configuración del vencimiento de la marca de tiempo y de los tiempos de inmunidad de los tóquenes en AWS WAF.
Los encabezados no están disponibles para las aplicaciones de JavaScript que se ejecutan en el navegador del cliente
Cuando AWS WAF responde a una solicitud de un cliente con un CAPTCHA o una respuesta a un desafío, no incluye los encabezados de uso compartido de recursos entre orígenes (CORS). Los encabezados CORS son un conjunto de encabezados de control de acceso que indican al navegador web del cliente qué dominios, métodos HTTP y encabezados HTTP pueden utilizar las aplicaciones de JavaScript. Sin los encabezados CORS, las aplicaciones de JavaScript que se ejecutan en un navegador cliente no tienen acceso a los encabezados HTTP y, por lo tanto, no pueden leer el encabezado x-amzn-waf-action
que se proporciona en las respuestas CAPTCHA y Challenge.
Función de los intersticiales de desafío y CAPTCHA
Cuando se ejecuta un desafío intersticial, después de que el cliente responda correctamente, si aún no tiene un token, el intersticial inicializa uno para él. A continuación, actualiza el token con la marca de tiempo de resolución del desafío.
Cuando se ejecuta un intersticial de CAPTCHA, si el cliente aún no tiene un token, el intersticial de CAPTCHA invoca primero el script de desafío para desafiar al navegador e inicializar el token. Luego, el intersticial ejecuta su rompecabezas de CAPTCHA. Cuando el usuario final complete correctamente el rompecabezas, el intersticial actualiza el token con la marca de tiempo de resolución del CAPTCHA.
En cualquier caso, una vez que el cliente responde correctamente y el script actualiza el token, el script vuelve a enviar la solicitud web original utilizando el token actualizado.
Puede configurar la forma en que AWS WAF gestiona los tokens. Para obtener más información, consulte Uso de tókenes en solicitudes web en AWS WAF.