mediumCWE-319A02:2021

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.

Código Vulnerable
// 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
Código Seguro
// 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

Next.jsnodejsnginxapache

Data Hogo detecta esta vulnerabilidad automáticamente.

Escanea Tu Repo Gratis

Vulnerabilidades Relacionadas