Hay una serie de encabezados en HTTP que deberían utilizarse para aumentar la seguridad de las aplicación web, a estos encabezados se les conoce como encabezados de seguridad. Una vez implementados, impiden que los navegadores se encuentren con vulnerabilidades que se pueden prevenir con facilidad así como también proporcionan una capa adicional de seguridad al ayudar a mitigar las vulnerabilidades de seguridad y prevenir ataques como XSS, Click Jacking, filtración de información, entre otros. Es importante mencionar que los encabezados de seguridad HTTP no reemplazar código correcto y seguro, este se sigue teniendo que desarrollar.

  • HSTS, es un mecanismo que evita que los los navegador tengan acceso a una página web a través de una conexión no encriptada si se puede establecer una conexión encriptada, usando solo un certificado de confianza. Normalmente, los navegadores permiten a los usuarios ignorar los errores TLS y seguir navegando por posibles páginas web no seguras. Si se habilita HSTS, el usuario no podrá ignorar el aviso del navegador ni continuar.
  • X-XSS-Protection, es un encabezado opcional que realiza un filtrado XSS definiendo el comportamiento del mecanismo anti XSS que va desde sanear una página mediante el bloqueo de JavaScript inyectado a evitar la presentación de páginas y denunciar las infracciones.
  • X-Frame-Options, define si la página web se puede representar dentro de los tags <iframe>, <applet>, <embed> y <object>. En función de la directiva, este encabezado especifica la lista de dominios que pueden insertar la página web, permite que la página web se inserte solamente dentro de páginas del mismo origen o prohíbe totalmente la inserción de una página web.
  • Content-Security-Policy, es un encabezado especial que le indica al navegador cuáles son los orígenes de contenido seguros para la página que va a cargar. Determinar esos orígenes seguros evita que un hacker engañe al navegador para que cargue y ejecute scripts maliciosos en el navegador del usuario, inyecte iframes con contenido malicioso o no autorizado, muestre imágenes falsas o, básicamente, inyecte cualquier elemento de un dominio remoto que no sea de confianza. Tambien puede utilizarse para garantizar que todo el contenido se carga por HTTPS y, además, puede evita el Click Jacking al indicarle al navegador que no permita la carga de una determinada página en un iframe.