Todas las guías
Severidad AltaEncabezados de seguridad

HTTP Strict Transport Security (HSTS) explicado

HTTP Strict Transport Security (HSTS) es un encabezado de respuesta que le dice a los navegadores que se conecten a tu sitio únicamente por HTTPS. Una vez visto, el navegador rechaza las conexiones HTTP planas a tu dominio mientras dure la política.

Qué es

HSTS se entrega mediante el encabezado Strict-Transport-Security, p. ej. max-age=31536000; includeSubDomains; preload. max-age indica cuánto tiempo (en segundos) el navegador recuerda la regla.

Tras la primera visita HTTPS, el navegador actualiza automáticamente cada solicitud futura a HTTPS: el usuario no puede llegar por accidente a la versión insegura y un atacante no puede degradar la conexión de vuelta a HTTP.

Por qué importa

Sin HSTS, la primera solicitud de un usuario (al escribir tudominio.com) viaja por HTTP plano y puede interceptarse antes de que tu redirección a HTTPS llegue a ocurrir: el clásico ataque de SSL stripping.

Una política HSTS débil socava la protección: un max-age corto reduce la ventana en que se exige HTTPS, y omitir includeSubDomains deja todos los subdominios expuestos a la degradación.

Cómo solucionarlo

Envía un encabezado fuerte

Usa un max-age largo (un año), cubre los subdominios y súmate al preload.

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Verifica primero que todo sirva HTTPS

Agrega includeSubDomains y preload solo cuando cada subdominio sirva HTTPS válido; de lo contrario, puedes bloquear el acceso a subdominios que no estén listos.

Envía tu dominio a la lista de preload

Cuando tu encabezado incluya 'preload', registra tu dominio en hstspreload.org para que los navegadores exijan HTTPS incluso en la primera visita.

Preguntas frecuentes

¿Qué max-age debería usar?

Al menos 15552000 (6 meses); 31536000 (1 año) es la recomendación habitual y lo que exige la lista de preload.

¿HSTS puede dejarme fuera de mi propio sitio?

Solo si más adelante necesitas servir por HTTP o tienes un subdominio sin HTTPS. Prueba a fondo antes de habilitar includeSubDomains o preload.

¿Tu app está afectada?

AppSafe verifica este y docenas de problemas más en un solo escaneo gratis.

Escanear mi app gratis