mediumCWE-1004A07:2021

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.

Código Vulnerable
// MAL: token de auth legible por JavaScript
res.setHeader('Set-Cookie', `authToken=${token}; Path=/; Secure`);
Código Seguro
// 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

nodejsNext.jsPythonPHP

Data Hogo detecta esta vulnerabilidad automáticamente.

Escanea Tu Repo Gratis

Vulnerabilidades Relacionadas