Toda respuesta HTTP de Woku incluye un set de headers de seguridad calibrados para obtener calificación A+ en securityheaders.com.Documentation Index
Fetch the complete documentation index at: https://woku.app/docs/llms.txt
Use this file to discover all available pages before exploring further.
Headers comunes (todos los dominios)
| Header | Valor | Por qué |
|---|---|---|
Strict-Transport-Security | max-age=63072000; includeSubDomains; preload | Fuerza HTTPS por 2 años en navegador. Apto para HSTS preload list. |
X-Content-Type-Options | nosniff | Bloquea MIME-sniffing. |
X-Frame-Options | DENY | Bloquea cualquier framing del contenido. Defensa-en-profundidad sobre frame-ancestors. |
Referrer-Policy | strict-origin-when-cross-origin | No leakea path/query a sitios externos. |
Permissions-Policy | camera=(self), microphone=(self), geolocation=(), interest-cohort=() | Habilita cámara/micrófono solo para Woku; bloquea geolocation y FLoC. |
Cross-Origin-Opener-Policy | same-origin | Aísla el contexto del navegador para mitigar Spectre. |
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:
script-srccon 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-srclimitado: el front solo puede hacer XHR/fetch aapi.woku.app(HTTPS y WSS). Cualquier exfiltración a otros dominios es bloqueada por el navegador.upgrade-insecure-requests: si por error queda un recursohttp://, el navegador lo reescribe ahttps://.
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:- securityheaders.com → objetivo A+ sostenido.
- Mozilla Observatory → objetivo A+ sostenido.
- Hardenize → batería completa (TLS, CSP, HTTPS, HSTS, redirects, certs).
Reportar un downgrade
Si descubres un dominio Woku con headers más permisivos que los documentados aquí:team@woku.app.