El significado de HSTS es HTTP Strict Transport Security, o lo que es lo mismo, traducido al español, HTTP con Seguridad de Transporte Estricta. Se trata de un sistema o política de seguridad implementada con el fin de evitar ataques que tratan de interceptar comunicaciones. Al habilitar las cabeceras HSTS, el servidor web indica que los navegadores web solo pueden interactuar con él utilizando conexiones HTTP seguras, es decir, conexiones HTTPS.
Utilizando estas cabeceras el servidor se comunica con el navegador a través de un campo, como hemos indicado, denominado Strict Transport Security. El sistema HSTS indica un periodo de tiempo durante el cual el agente de usuario accederá al servidor solo de forma segura.
La importancia del protocolo HTTPS
Hoy es muy importante que los sitios web utilicen el protocolo seguro HTTPS. Ya hemos hablado de ello en La seguridad en Internet cada vez tiene más importancia. La instalación del mismo requiere de un certificado SSL, que la mayoría de los proveedores de alojamiento proporcionan gratuitamente, al utilizar Lets Encrypt. Existen varios artículos que hablan de todos los pasos que hay que hacer para pasar de HTTP a HTTPS. Uno bastante completo es Cómo pasar de http a https: Instala el certificado SSL paso a paso.
Cómo habilitar las cabeceras HSTS
Después de llevar a cabo el cambio es cuando se debe realizar la habilitación de las cabeceras HSTS. Si se dispone de un servidor Apache, lo mejor es añadir las líneas siguientes en el archivo .htaccess, dentro del espacio que aloja los archivos:
# Cabecera X-Frame-Options para mejorar la seguridad Header always append X-Frame-Options SAMEORIGIN # Cabecera Strict-Transport-Security para indicar la duración de la cabecera HSTS Header add Strict-Transport-Security "max-age=157680000; includeSubDomains; preload" # Cabecera X-XSS-Protection para evitar ataques XSS en IE y Chrome Header set X-XSS-Protection "1; mode=block" # Cabecera X-Content-Type-Options para evitar que se carguen hojas de estilo o scripts maliciosos Header set X-Content-Type-Options "nosniff" # Cabecera Referer-Policy Header set Referrer-Policy no-referrer-when-downgrade # Cabecera Content-Security-Policy Header set Content-Security-Policy "self" # Cabecera Feature-Policy Header set Feature-Policy "accelerometer 'none'; camera 'none'; geolocation 'none'; gyroscope 'none'; magnetometer 'none'; microphone 'none'; payment 'none'; usb 'none'"
Se pueden llevar a cabo algunos cambios en los distinto apartados. Así se puede modificar el valor de max-age y el valor self, correspondiente a la cabecera de Content-Security-Policy, haciéndola más precisa.
Para saber si un sitio web tiene perfectamente habilitadas las cabeceras HSTS, se puede recurrir a Security Headers e introducir la URL de la web.
Tras hacerlo se mostrará un recuadro en el que se especifica la valoración del mismo. Si alguna de las cabeceras no está habilitada o es errónea, se verá un enlace de color rojo a una página que explica en donde está el fallo y como se puede corregir.
Más abajo se verá una muestra de las cabeceras web. Algo similar a lo siguiente:
Conclusión
Cualquiera que posea un sitio web seguro debe comprobar si tiene o no habilitadas las cabeceras HSTS. Si no las tiene, debe tratar por todos los medios de habilitarlas. Los buscadores, con Google a la cabeza, lo tendrán en cuenta.