Cookies Sin Flag HttpOnly
Cookies de sesión o auth accesibles para JavaScript via document.cookie, permitiendo que ataques XSS roben tokens de sesión directamente del navegador.
Cómo Funciona
Sin HttpOnly, cualquier JavaScript corriendo en tu página — incluyendo scripts maliciosos inyectados — puede leer `document.cookie` y exfiltrar tokens de sesión. HttpOnly le dice al navegador que envíe la cookie con requests HTTP pero que nunca la exponga a JavaScript, así que XSS no puede robarla aunque se ejecute.
// MAL: token de auth legible por JavaScript
res.setHeader('Set-Cookie', `authToken=${token}; Path=/; Secure`);// BIEN: HttpOnly bloquea el acceso de JS
res.setHeader(
'Set-Cookie',
`authToken=${token}; Path=/; Secure; HttpOnly; SameSite=Lax`
);Ejemplo Real
El breach de eBay de 2014 involucró ataques XSS que aprovecharon el acceso a cookies sin HttpOnly. Una vez que existe una falla XSS, HttpOnly es la diferencia entre 'un script se ejecutó' y 'todas las sesiones de usuarios están comprometidas'.
Cómo Prevenirlo
- Pon HttpOnly en todas las cookies de sesión, auth y CSRF
- Si tu JavaScript frontend genuinamente necesita un valor, usa una cookie separada no sensible para eso
- Nunca guardes tokens de auth en localStorage — usa cookies HttpOnly en su lugar
- Audita todos los headers Set-Cookie en tu app con curl -v o DevTools del navegador
Tecnologías Afectadas
Data Hogo detecta esta vulnerabilidad automáticamente.
Escanea Tu Repo GratisVulnerabilidades Relacionadas
Falta el Header Content-Security-Policy
mediumEl header Content-Security-Policy (CSP) está ausente, dejando a los navegadores sin instrucciones sobre qué fuentes de scripts, estilos y recursos confiar.
Falta el Header X-Frame-Options
mediumEl header X-Frame-Options está ausente, permitiendo a atacantes embeber tu app en un iframe invisible y engañar usuarios para que hagan clic en tus elementos de UI (clickjacking).
Falta el Header X-Content-Type-Options
lowEl header X-Content-Type-Options: nosniff está ausente, permitiendo que los navegadores adivinen el tipo de contenido de una respuesta y potencialmente ejecuten contenido como script.
Falta HTTP Strict Transport Security (HSTS)
mediumEl header Strict-Transport-Security está ausente, permitiendo a los navegadores conectarse por HTTP plano y habilitando ataques de downgrade donde un atacante intercepta tráfico no cifrado.