Mitiga el robo de clics con XFO o CSP

La captura de clics es un ataque malicioso en el que se engaña a los usuarios para que hagan clic en vínculos o elementos de la IU de un sitio que parece ser de confianza y familiar. Por lo general, esto se logra incorporando parte o la totalidad del sitio de confianza en el sitio malicioso con un <iframe>.

El encabezado X-Frame-Options (XFO) y la directiva frame-ancestors en el encabezado Content-Security-Policy (CSP) pueden mitigar los ataques de suplantación de clics controlando cómo se puede incorporar un sitio en un <iframe>.

Cómo falla la auditoría de Lighthouse

La auditoría se aprobará si el encabezado XFO se establece con SAMEORIGIN o DENY, o si la directiva frame-ancestors se establece en el encabezado CSP. La auditoría fallará si no se configura ninguna de estas políticas de control de tramas.

Informe de Lighthouse que advierte que no se encontró ningún encabezado de respuesta de CSP o XFO para mitigar el ataque de suplantación de clics.
El informe de Lighthouse advierte que no se encontró ningún encabezado de respuesta de CSP o XFO para mitigar el ataque de suplantación de clics.

Cómo configurar una política de control de marco para mitigar el robo de clics

Se debe establecer una política de control de tramas en los encabezados HTTP de la solicitud de documento inicial. El encabezado X-Frame-Options y la directiva frame-ancestors en Content-Security-Policy no funcionarán si se configuran en un elemento <meta>.

Encabezado XFO

Si configuras DENY o SAMEORIGIN para el encabezado XFO, se mitigarán los ataques de suplantación de clics:

X-Frame-Options: SAMEORIGIN
X-Frame-Options: DENY

La directiva SAMEORIGIN permite que la página se muestre solo si todos los marcos superiores comparten el mismo origen que la página. Por el contrario, la directiva DENY evita que la página se muestre en un marco, independientemente del origen del marco superior.

Encabezado del CSP

La directiva frame-ancestors dentro del encabezado de la CSP define qué sitios pueden incorporar la página determinada en un <frame>, <iframe>, <object> o <embed>. Al igual que con XFO, la directiva frame-ancestors de CSP se puede usar para mitigar los ataques de captura de clics configurándola en self o none:

Content-Security-Policy: frame-ancestors 'self';
Content-Security-Policy: frame-ancestors 'none';

Sin embargo, la directiva frame-ancestors es más flexible que XFO porque puede establecer fuentes superiores específicas que pueden incorporar la página:

Content-Security-Policy: frame-ancestors 'self' https://example.com;

Recursos