Cabecera de Seguridad HSTS en WordPress

HSTS

¿Qué es HSTS?

HSTS son las siglas de HTTP Strict Transport Security. Es un método utilizado por los sitios web para declarar que sólo se puede acceder a ellos mediante una conexión segura (HTTPS). Si un sitio web declara una política HSTS, el navegador debe rechazar todas las conexiones HTTP y evitar que los usuarios acepten certificados SSL inseguros.

HTTP Strict Transport Security se definió como un estándar de seguridad web en 2012 en el RFC 6797. El objetivo principal de la creación de este estándar era ayudar a evitar los ataques del hombre en el medio (MITM) que utilizan la eliminación de SSL. El despojo de SSL es una técnica en la que un atacante fuerza al navegador a conectarse a un sitio usando HTTP para poder husmear en los paquetes e interceptar o modificar información sensible. HSTS también es un buen método para protegerse del secuestro de cookies. HSTS es soportado por la mayoría de los navegadores modernos y actualizados. https://caniuse.com/?search=HSTS

¿Cómo funciona el HSTS?

Normalmente, cuando se introduce una URL en el navegador web, se omite la parte del protocolo. Por ejemplo, escribe www.triketa.net, no http://www.triketa.net. En este caso, el navegador asume que usted desea utilizar el protocolo HTTP, por lo que realiza una petición HTTP a www.triketa.net.

En este momento, el servidor web responde con una redirección (código de respuesta 301) que apunta al sitio HTTPS. El navegador realiza una conexión HTTPS a www.triketa.net. En este momento comienza la protección de la política de seguridad HSTS mediante una cabecera de respuesta HTTP: Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

La cabecera Strict-Transport-Security da instrucciones específicas al navegador. A partir de ahora, toda conexión al sitio y a sus subdominios durante el próximo año (31536000 segundos) a partir del momento en que se reciba esta cabecera debe ser una conexión HTTPS. Las conexiones HTTP no están permitidas en absoluto. Si el navegador recibe una solicitud para cargar un recurso usando HTTP, debe intentar una solicitud HTTPS en su lugar. Si HTTPS no está disponible, la conexión debe ser terminada.

Además, si el certificado no es válido, se le impedirá realizar una conexión. Normalmente, si un certificado no es válido (caducado, autofirmado, firmado por una CA desconocida, etc.) el navegador muestra una advertencia que se puede eludir. Sin embargo, si el sitio tiene HSTS, el navegador no le permitirá eludir la advertencia en absoluto. Para acceder al sitio, debe eliminar el sitio de la lista HSTS dentro del navegador.

La cabecera Strict-Transport-Security se envía para un sitio web determinado y cubre un nombre de dominio concreto. Por lo tanto, si tiene la cabecera HSTS para www.triketa.net, no cubrirá triketa.net sino sólo el subdominio www. Por eso, para una protección completa, su sitio web debería incluir una llamada al dominio base (en este caso, triketa.net) y recibir una cabecera Strict-Transport-Security para ese dominio con la directiva includeSubDomains.

¿Por qué debería usar HSTS en mis sitios webs?

HSTS le permite evitar los ataques man-in-the-middle (MITM) que utilizan la eliminación de SSL. La eliminación de SSL es una técnica en la que un atacante obliga al navegador a conectarse a un sitio web mediante HTTP para poder husmear en los paquetes e interceptar o modificar información sensible. HSTS también es un buen método para protegerse del secuestro de cookies.

¿Cómo puedo activar la cabecera de seguridad HSTS en mi página de WordPress?

Para poder aplicar la cabecera HSTS en tu sitio web, debes tener dos requisitos previos:

  1. Un certificado SSL instalado en tu hosting.
  2. Tu sitio debe estar configurado para solo trabajar en HTTPS y redigir todo tráfico HTTP a HTTPS.

Suponiendo ya los dos requisitos anteriores ya los tienes, vayamos a lo que vinimos.

El paso para aplicar esta cabecera de seguridad es sumamente sencillo, debes ir a tu archivo .htaccess y las siguientes lineas de código (si no tienes agregada la linea del motor de re-escritura agrégalo una linea antes usando la linea de código RewriteEngine On)

<IfModule mod_headers.c>

Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" env=HTTPS

</IfModule>

¡Eso es todo!, una vez agregada esa linea en tu archivo .htaccess tu sitio tendrá activa la cabecera HSTS en cada petición que llegue a tu servidor.

La información técnica de la cabecera y sus parámetros la podrás encontrar aquí https://developer.mozilla.org/es/docs/Web/HTTP/Headers/Strict-Transport-Security

¿Cómo puedo saber si mi página web soporte HSTS?

Hay en linea muchas herramientas gratuitas en linea para saber si tu sitio ya tiene activada o no la cabecera de seguridad HSTS. Te dejo nuestras favoritas listadas debajo.

hsts-securityheaders

Si eres más de usar la consola de comandos, puedes usar un comando en CURL para saber si tienes HSTS activado. Escribes el siguiente comando:

curl -s -D- https://triketa.net/ | grep -i Strict

Si el HSTS está activado la respuesta debe ser similar a esta: strict-transport-security: max-age=31536000; includeSubDomains; preload

hsts-consola

Para mantener tu sitio 100% seguro para tus usuarios, muchas cabeceras de seguridad deben ser configuradas correctamente, si prefieres dejarle estos pasos técnicos a los expertos, nuestros ingenieros están siempre dispuestos a darte soporte. Escríbenos a [email protected] para que hagamos una auditoria de tu sitio web gratis y luego cotizarte un precio por implementación de mejoras. dejaremos tu sitio seguro y volando 🔐 🚀