Cabeceras HTTP a tener en cuenta en nuestro servidor
Cuando navegamos por un sitio web existe una comunicación constante entre el cliente y el servidor, en esta comunicación además de enviarse los recursos de la web, en cada petición se envían las cabeceras que proveen de información adicional tanto al servidor como al cliente. Entre los datos enviados por parte del servidor se encuentran unas cabeceras que nos permitirán hacer que un sitio web sea más seguro.
Las cabeceras que se utilizan generalmente para securizar un sitio web son:
- Strict-Transport-Security: Obliga a que la comunicación sea estrictamente HTTPS y el navegador bloqueará futuros intentos si se intentan acceder al dominio HTTP
- X-Frame-Options: Evita que el dominio sea cargado como iframe en otra web.
- X-XSS-Protection: Nos ayuda con los ataques de tipo Cross-Site Scripting (XSS). Con esta le decimos al navegador como actuar si se detecta un ataque de tipo XSS.
- X-Content-Type-Options: Reduce el riesgo de que se produzca un ataque basado en confusión de tipos MIME.
- Content-Security-Policy: Esta cabecera sirve para indicar al navegador qué contenidos dinámicos de terceros se permiten cargar.
- Referrer-Policy: Envía información en la cabecera indicando el origen de la referencia, es decir como se ha llegado a la página que se está mostrando.
- Feature-Policy : Este cabecera la envía el servidor e indica al cliente web que recursos del equipo utiliza, por ejemplo la cámara web
- Public-Key-Pins (HPKP): Es una cabecera la cuál dice al navegador que asocie una clave pública específica a un sitio web con el objetivo de reducir ataques que hombre en el medio.
- Expect-CT: Cabecera que utiliza google para determinar que el certificado pertenece es Certificate Transparency. Evita certificados falsos. Pretende sustituir a HPKP.
- X-Permitted-Cross-Domain-Policies: Adobe maneja la solicitud de dominio cruzado a través de un archivo llamado crossdomain.xml, esta política define las políticas para acceder a este archivo.
Existen otras cabeceras que tendremos que tener en cuenta ya que facilitan información sobre nuestro servidor y deberemos eliminarlas o modificar su contenido:
- Server: El servidor utiliza esta cabecera para indicar cuál es el sistema para servir las páginas (Apache, nginx…etc)
- X-Powered-By: Informan del lenguaje y la versión en la que está realizada la página
- X-AspNet-Version: Si la web utiliza ASP. Informa de la versión de AspNet en la que la página esta realizada.
Existen varias webs donde podemos comprobar las cabeceras de seguridad, por ejemplo la web Geekflare o la web Security Headers.