Falta HTTP Strict Transport Security (HSTS)
El 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.
Cómo Funciona
Aunque tu servidor redirija HTTP a HTTPS, el primer request se hace por HTTP. Un atacante en la misma red (Wi-Fi de café, red corporativa) puede interceptar ese primer request antes de que ocurra la redirección. HSTS le dice a los navegadores que solo se conecten via HTTPS durante un período determinado — sin primer request HTTP jamás.
// MAL: la redirección existe pero HSTS no está configurado
// Un usuario escribe 'tuapp.com' — el navegador envía request HTTP
// Un atacante en la red intercepta antes de la redirección a HTTPS// BIEN: HSTS en la config de Next.js
export default {
async headers() {
return [{
source: '/(.*)',
headers: [{
key: 'Strict-Transport-Security',
value: 'max-age=63072000; includeSubDomains; preload'
}]
}];
}
};Ejemplo Real
Los ataques de SSL stripping (demostrados por Moxie Marlinspike en 2009) interceptan las redirecciones HTTP-a-HTTPS. Los hotspots de Wi-Fi público son vectores comunes. HSTS elimina completamente esta clase de ataque después de la primera visita.
Cómo Prevenirlo
- Configura Strict-Transport-Security con max-age de al menos 1 año (31536000 segundos)
- Incluye includeSubDomains para proteger todos los subdominios
- Envía a la lista de preload de HSTS en hstspreload.org para máxima protección
- Asegúrate de que todo tu dominio sirva HTTPS antes de habilitar HSTS — una mala configuración puede bloquear a los usuarios
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.
Cookies Sin Flag Secure
mediumCookies 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.