OpenWAF Verify es un widget que insertas en un formulario: el navegador resuelve una prueba de trabajo breve y tu servidor comprueba su token de un solo uso con POST /__waf/challenge/siteverify en tu propio host o POST https://dash.openwaf.dev/v1/challenge/siteverify. El script, el worker y los endpoints los sirve el borde en tu host, así que no hay iframe ni cookie de terceros y funciona con Content-Security-Policy: default-src 'self'. Los campos de siteverify se llaman igual que en Cloudflare Turnstile. Crea widgets en Seguridad → Verificación, con /v1/orgs/{org}/zones/{zone}/challenge/widgets, challenge widget-add en la CLI o challenge_widgets en MCP; los secretos se muestran una vez y se rotan con 24 horas de solapamiento. Consulta Widget OpenWAF Verify y la referencia de siteverify.
La página intermedia del reto de navegador está ahora en inglés y en español, con una línea de estado para lectores de pantalla y un mensaje sin JavaScript. Los retos son de un solo uso, los pases van ligados a la /24 IPv4 o la /64 IPv6 del visitante y el trabajo se hace en un Web Worker como cuatro acertijos más pequeños. Cada zona fija la duración del pase, la dificultad, el ámbito del pase, el color y la barrera con los ajustes challenge.*, y Seguridad → Verificación muestra los retos emitidos, resueltos, fallidos y abandonados con el tiempo de resolución p50 y p95 (challenge_report en MCP). Consulta Reto de navegador.