Algunas reglas pueden retar una petición en lugar de bloquearla: las reglas de límite de peticiones con action: challenge y la política del control de rastreadores IA con la acción challenge.
Qué ve el visitante
Una navegación de navegador (un GET cuyo Accept incluye text/html) recibe una página intermedia breve:
- La página responde
503conCache-Control: no-store, así que nunca se guarda en caché ni se indexa. - Un pequeño script, sin recursos externos, calcula una prueba de trabajo SHA-256 en el navegador (normalmente entre decenas y cientos de milisegundos).
- Envía el resultado a
/__waf/verify. Si es válido, el borde pone la cookie__waf_pass(HttpOnly,Secure,SameSite=Lax) y la página se recarga. - Mientras el pase sea válido, la misma regla deja pasar al visitante.
El pase lo firma el borde y va ligado a la red del visitante; cuando caduca, o desde otra red, puede tener que resolver el reto otra vez.
Peticiones que no son navegaciones
Los scripts, las llamadas a la API y los envíos de formularios no pueden ejecutar la página intermedia, así que no la reciben:
| Origen del reto | Respuesta a lo que no es navegación |
|---|---|
| Regla de límite de peticiones | 429 con Retry-After, exactamente como block. |
| Control de rastreadores IA | 403 con {"error":"verificacion de navegador requerida"}. |
Rastreadores
Un User-Agent por sí solo no demuestra nada. Con el control de rastreadores IA activado y spoofed_challenge en enforce, solo los rastreadores verificados por rango de IP, DNS inverso o Web Bot Auth se saltan el reto. Consulta Verificación de bots.