# Widget OpenWAF Verify y ajustes del reto de navegador por zona

> Un widget de prueba de trabajo de primera parte con siteverify, y un reto de navegador con retos de un solo uso, vínculo a la /64 IPv6 y ajustes por zona.

**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](https://developers.openwaf.dev/es/waf/verify-widget/) y la [referencia de siteverify](https://developers.openwaf.dev/es/waf/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](https://developers.openwaf.dev/es/waf/browser-challenge/).
