Saltar al contenido

headers.security_clickjacking

Que la página no se pueda mostrar dentro de un marco de otra web.

Por qué importa

Sin esta protección, otra web puede mostrar la tuya dentro de un marco invisible y engañar a los visitantes para que hagan clic donde no quieren (clickjacking).

Cómo se corrige

Añade la cabecera X-Frame-Options: SAMEORIGIN o, mejor, la directiva frame-ancestors 'self' en tu Content-Security-Policy.

Paso a paso: el prompt para tu IA

Cuando Seotres encuentra este problema en tu web, te da un prompt listo para pegar en la IA que uses, con los datos de tu página. Este es el de esta regla con una web de ejemplo (tudominio.com):

Problema: la respuesta no protege frente al clickjacking (ni X-Frame-Options ni frame-ancestors).

Datos de tu web: Aquí van la página y la evidencia que ha encontrado Seotres.

Objetivo

Que tudominio.com no se pueda meter dentro de otra web en un marco: añade «X-Frame-Options: SAMEORIGIN» o «frame-ancestors 'self'» en la CSP.

Pasos

  • Pregúntame antes si alguna web mía o de un socio necesita mostrar estas páginas dentro de un marco (iframe).
  • Si la web es código propio o un servidor que gestionas: añádela en la configuración del servidor (Nginx, Apache…), del CDN o del framework (por ejemplo, la configuración de cabeceras de Next.js o de tu alojamiento).
  • Si usas WordPress: suele ponerse desde el alojamiento, desde un plugin de seguridad o de caché, o en el archivo .htaccess si el servidor es Apache.
  • Si usas Shopify, Wix, Squarespace u otra plataforma cerrada: las cabeceras las controla la plataforma y normalmente no se pueden cambiar; si es así, dímelo en vez de buscar trucos.

Antes de volver a Seotres

Para comprobarlo antes de volver a Seotres, mira las cabeceras de la respuesta en las herramientas para desarrolladores del navegador (pestaña Red).

Términos de esta regla

clics

Las veces que alguien ha pulsado un resultado de Google que lleva a tu web.

Ejemplo: Tu página de zapatillas sale en Google y la pulsan 120 veces en un mes: son 120 clics.

Fuente: Ayuda de Search Console: qué son las impresiones, la posición y los clics

clickjacking

Ataque que muestra tu web dentro de un marco invisible de otra para que los visitantes hagan clic sin querer.

Ejemplo: «Content-Security-Policy: frame-ancestors 'self'» solo deja que tu propio sitio muestre tus páginas en un marco.

Fuente: OWASP: defensa frente al clickjacking

Cabeceras HTTP

Datos que el servidor envía junto a cada página, sin que se vean en ella: tipo de archivo, caché, seguridad…

Ejemplo: «Content-Encoding: gzip» indica que la página viaja comprimida.

Fuente: MDN Web Docs: cabeceras HTTP

directiva

Cada regla de una CSP: un nombre (script-src, img-src…) y la lista de orígenes permitidos para ese tipo de recurso.

Ejemplo: «img-src 'self' https://cdn.ejemplo.com» solo deja cargar imágenes de tu dominio y de ese CDN.

Fuente: W3C: Content Security Policy Level 3

Fuente oficial

https://cheatsheetseries.owasp.org/cheatsheets/Clickjacking_Defense_Cheat_Sheet.html