Los encabezados HTTP son un tipo de metadatos enviados con solicitudes y respuestas web. La información que proporcionan puede ser importante o simplemente informativa. Los encabezados de seguridad son un subconjunto de «encabezados de respuesta» que puede configurar el servidor web. Son una de las funciones que pueden ayudar a resolver una serie de problemas de seguridad. Uno de los encabezados de seguridad, llamado «X-Frame-Options», está diseñado para evitar ataques de clickjacking.
Click-jacking
El clickjacking, también conocido como «enderezamiento de la interfaz de usuario», es un problema en el que un atacante logra engañar a un usuario para que haga clic en algo que no es lo que parece ser. Para los sitios web, esto se hace superponiendo un sitio web transparente encima de uno visible. En este tipo de ataques, el usuario piensa que está interactuando con el sitio web visible, pero en realidad está afectando sin querer el sitio web transparente.
Por ejemplo, un atacante podría crear un sitio web que haga probable que un usuario haga clic en un botón, como un botón para reproducir un vídeo. En una capa transparente encima de esta página web hay una segunda página web, como la página web para eliminar su cuenta de Facebook con el botón «Eliminar cuenta» ubicado directamente sobre el botón de reproducción. En este escenario, cuando el usuario intenta hacer clic en Reproducir, en realidad está haciendo clic en el botón para eliminar su cuenta de Facebook.
El clickjacking se basa en la capacidad de mostrar el sitio web de destino encima del sitio web falso, mediante un proceso llamado «Framing». El encuadre utiliza el elemento HTML «iframe» que puede cargar una página web completamente separada en otra página. Al cargar la página web de destino en un marco, colocarla cuidadosamente y hacerla transparente, la víctima no se dará cuenta por completo de que la están engañando para que realice una acción.
Opciones de marco X
El encabezado de respuesta HTTP «X-Frame-Options» es una característica opcional que se puede configurar para sitios web en archivos de configuración del servidor. X-Frame-Options evita que las páginas web se carguen en iframes, evitando que se superpongan en otro sitio web. El navegador de la víctima en realidad aplica el control de seguridad, porque todos los navegadores respetan el encabezado X-Frame-Options y se negarán a cargar cualquier página web cuyo encabezado esté dentro de un marco.
El encabezado permite al propietario del sitio web configurar qué tan restrictiva es la configuración. Hay dos configuraciones: «X-Frame-Options: DENY» evita que se enmarque una página web protegida. La otra opción, «X-Frame-Options: SAMEORIGIN», le permite enmarcar páginas web protegidas, sólo si la página que carga el marco tiene el mismo nombre de dominio. En este caso, puedes subir un marco a tu propio sitio web pero nadie más puede subirlo al suyo.