Skip to main content
Toda respuesta HTTP de Woku incluye un set de headers de seguridad calibrados para obtener calificación A+ en securityheaders.com.

Headers comunes (todos los dominios)

API (api.woku.app)

La API sirve también la documentación Swagger en /documentation, que usa scripts inline propios. En el API se aplican todos los headers de arriba y CSP no se enforza porque la API no es una superficie HTML para usuarios. La protección CSP se enforza en los frontends donde corre código que ejecuta el navegador (review, admin). CORS está restringido a una allowlist (ALLOWED_ORIGINS env var). En desarrollo se añaden localhost:5173 (Vite admin) y localhost:3000 (Next.js review) automáticamente.

Frontend público (review.woku.app)

Además de los headers comunes, este dominio aplica una CSP nonce-based generada per-request:
Lo importante:
  • script-src con nonce + strict-dynamic: solo se ejecuta el bundle de Next.js (que lleva el nonce) y los scripts que ese bundle cargue dinámicamente. Cualquier <script> inyectado por un atacante (XSS) es bloqueado por el navegador.
  • frame-ancestors 'none' + object-src 'none': nadie puede embeber Woku en un <iframe> ni cargar plugins. Defensa contra clickjacking.
  • connect-src limitado: el front solo puede hacer XHR/fetch a api.woku.app (HTTPS y WSS). Cualquier exfiltración a otros dominios es bloqueada por el navegador.
  • upgrade-insecure-requests: si por error queda un recurso http://, el navegador lo reescribe a https://.
El nonce se genera con crypto.getRandomValues(16 bytes) codificado en base64. Es único por request y el navegador rechaza scripts que no lo lleven.

Validación

Periodicamente probamos los tres dominios contra:

Reportar un downgrade

Si descubres un dominio Woku con headers más permisivos que los documentados aquí: team@woku.app.