Cookies Sin Flag Secure
Cookies de sesión configuradas sin el flag Secure, permitiendo que se transmitan por conexiones HTTP no cifradas y sean interceptadas por atacantes en la red.
Cómo Funciona
Una cookie sin `Secure` será enviada por el navegador tanto en requests HTTP como HTTPS. Si un usuario visita la versión HTTP de tu sitio (aunque sea accidentalmente), su cookie de sesión viaja por la red en texto plano. Cualquiera que esté sniffeando la red — en Wi-Fi público o un proxy corporativo — puede capturarla y usarla.
// MAL: cookie de sesión sin flag Secure
res.setHeader('Set-Cookie', `session=${token}; HttpOnly; Path=/`);// BIEN: agrega el flag Secure en producción
const isProduction = process.env.NODE_ENV === 'production';
res.setHeader(
'Set-Cookie',
`session=${token}; HttpOnly; Path=/; SameSite=Lax${isProduction ? '; Secure' : ''}`
);Ejemplo Real
Las redes Wi-Fi de hoteles han sido usadas para capturar cookies de sesión desprotegidas de viajeros que usaban apps que servían cookies sin el flag Secure, permitiendo a atacantes secuestrar cuentas.
Cómo Prevenirlo
- Siempre pon el flag Secure en todas las cookies en producción
- Usa una librería de cookies (cookie, tough-cookie) que tenga Secure por defecto
- Habilita Secure condicionalmente basándote en NODE_ENV para que el dev local siga funcionando
- Combina con HttpOnly y SameSite para defensa en profundidad
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.