Volver a la página principal
domingo 17 noviembre 2024
19

Qué es el Clickjacking y cómo proteger tu sitio contra el secuestro de clics

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.

Cómo funciona el Clickjacking

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:

  • Autorizar acciones no deseadas en una cuenta.
  • Activar la instalación de malware.
  • Realizar compras sin consentimiento.

Cómo prevenir el Clickjacking

Para proteger tu sitio contra el secuestro de clics, puedes implementar las siguientes medidas:

1. Cabeceras HTTP de seguridad:

  • Usa la cabecera X-Frame-Options para evitar que tu sitio se cargue en un marco.
X-Frame-Options: DENY
  • Alternativamente, utiliza 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.

Ejemplos de configuración contra el Clickjacking

Ejemplo en Apache

En el archivo .htaccess:

Header always set X-Frame-Options "DENY"

Ejemplo en Nginx

En la configuración del servidor:

add_header X-Frame-Options "DENY";

Ejemplo en JavaScript

Detecta si tu sitio está incrustado en un iframe y redirígelo fuera:

if (window.top !== window.self) {
    window.top.location = window.self.location;
}

Referencias oficiales

Implementar estas prácticas asegura la protección de tus usuarios y la integridad de tu sitio web.

Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer