Usa una política de HSTS sólida

Los protocolos de texto sin formato, como HTTP, pueden ser vulnerables a los ataques de interceptación, en los que un atacante puede leer el contenido transmitido. La Seguridad de la capa de transporte (TLS) puede encriptar el tráfico y dificultar significativamente que los atacantes usen estos datos si los capturan.

Sin embargo, es posible que los atacantes eludan TLS forzando las conexiones encriptadas para que usen HTTP de texto sin formato. Para solucionar este problema, puedes usar el encabezado de respuesta HTTP con Seguridad de Transporte Estricta (HSTS). HSTS obliga al navegador del usuario a visitar un sitio web con TLS y no le permite volver a HTTP de texto simple durante un período determinado.

Browser Support

  • Chrome: 4.
  • Edge: 12.
  • Firefox: 4.
  • Safari: 7.

Source

Cómo falla la auditoría de Lighthouse

Advertencia del informe de Lighthouse que indica que no se encontró ningún encabezado de respuesta HSTS.

La auditoría marca los siguientes problemas con el encabezado HSTS:

  • Si no se encuentra ningún encabezado HSTS.
  • Si falta una de las directivas recomendadas (max-age, includeSubDomains, preload)
  • Si la duración de la directiva max-age es inferior a un año (31,536,000 segundos)
  • Si hay un error de sintaxis al analizar el encabezado, como una directiva desconocida

Configura una política de HSTS sólida

La configuración óptima del encabezado HSTS se ve de la siguiente manera:

Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
  • La directiva max-age especifica la cantidad de tiempo que el navegador del usuario se ve obligado a visitar un sitio web solo con TLS (en segundos). Una vez que transcurre el tiempo, los usuarios pueden volver a acceder al sitio con HTTP sin formato si el sitio web no proporciona un encabezado HSTS (o redireccionamientos temporales de HTTP a HTTPS).
  • Si se establece la directiva includeSubDomains, se aplica el encabezado en cualquier subdominio de la URL de la página que envía el encabezado inicialmente. Por ejemplo, si google.com envía un encabezado HSTS que incluye la directiva includeSubDomains, se aplicará el encabezado HSTS en mail.google.com.
  • Si configuras la directiva preload y envías el dominio al servicio de precarga de HSTS, se compilará el dominio en los archivos binarios del navegador que usan la lista de HSTS precargada. Esto se aplica a más que solo Google Chrome.

Existen algunos riesgos al implementar el encabezado HSTS. Cualquier función que requiera una conexión HTTP sin encriptar se interrumpirá durante el tiempo establecido en la directiva max-age. Incluso podría ser más largo si se aplica la directiva preload.

Para reducir los riesgos asociados al lanzamiento, se recomienda un enfoque por etapas:

  1. Comienza con un max-age pequeño y solo agrega includeSubDomains (no preload):

    max-age=3600; includeSubDomains
    
  2. Después de un período de inactividad (por ejemplo, una semana) sin problemas informados, aumenta el valor de max-age. Por ejemplo:

    max-age=604800; includeSubDomains
    
  3. Si esta fase inicial tiene éxito durante un período prolongado (por ejemplo, tres meses), el sitio web y sus subdominios se deben agregar a la lista de precarga de HSTS y se debe agregar la directiva preload.

    max-age=63072000; includeSubDomains; preload