El Clickjacking, también conocido como "secuestro de clics", es una técnica maliciosa utilizada por atacantes para engañar a los usuarios y hacer que realicen acciones no deseadas en un sitio web, como hacer clic en un botón, enlace o formulario sin su conocimiento. Esto se logra mediante la superposición de elementos invisibles o disfrazados sobre un sitio legítimo, logrando que el usuario interactúe con el contenido oculto.
El ataque de Clickjacking suele usar marcos (<iframe>
) para incrustar una página legítima dentro de otra, combinando técnicas de CSS para ocultar o desplazar la interfaz visible del usuario. De esta manera, las víctimas interactúan con elementos que no pueden ver, como botones de compra, permisos de acceso o enlaces maliciosos.
Por ejemplo, un clic en un botón aparentemente inofensivo puede:
Para proteger tu sitio contra el secuestro de clics, puedes implementar las siguientes medidas:
1. Cabeceras HTTP de seguridad:
X-Frame-Options
para evitar que tu sitio se cargue en un marco.
X-Frame-Options: DENY
SAMEORIGIN
para permitir que el contenido sea cargado solo en marcos dentro del mismo dominio:
X-Frame-Options: SAMEORIGIN
2. Content Security Policy (CSP):
Configura políticas CSP para evitar que el contenido se incruste en sitios no autorizados.
Content-Security-Policy: frame-ancestors 'self';
3. Evitar iframes en tu sitio:
Limita el uso de marcos a lo estrictamente necesario y bloquea el acceso no autorizado.
En el archivo .htaccess
:
Header always set X-Frame-Options "DENY"
En la configuración del servidor:
add_header X-Frame-Options "DENY";
Detecta si tu sitio está incrustado en un iframe y redirígelo fuera:
if (window.top !== window.self) {
window.top.location = window.self.location;
}
Implementar estas prácticas asegura la protección de tus usuarios y la integridad de tu sitio web.
Jorge García
Fullstack developer