کاهش کلیک جک با XFO یا CSP

Clickjacking یک حمله مخرب است که در آن کاربران فریب می‌خورند تا روی پیوندها یا عناصر رابط کاربری سایتی که به نظر می‌رسد یک سایت قابل اعتماد و آشنا است کلیک کنند. این معمولاً با جاسازی بخشی یا تمام سایت مورد اعتماد در سایت مخرب با استفاده از <iframe> انجام می شود.

هدر X-Frame-Options (XFO) و دستورالعمل frame-ancestors در هدر Content-Security-Policy (CSP) می تواند با کنترل نحوه جاسازی یک سایت در <iframe> ، حملات کلیک جک را کاهش دهد.

چگونه ممیزی فانوس دریایی شکست می خورد

اگر هدر XFO با SAMEORIGIN یا DENY تنظیم شده باشد، یا دستورالعمل frame-ancestors روی هدر CSP تنظیم شده باشد، ممیزی انجام خواهد شد. اگر هیچ یک از این سیاست‌های کنترل چارچوب پیکربندی نشود، ممیزی با شکست مواجه خواهد شد.

گزارش Lighthouse هشدار می دهد که هیچ هدر پاسخ CSP یا XFO برای کاهش کلیک جک یافت نشد.
گزارش Lighthouse هشدار می دهد که هیچ هدر پاسخ CSP یا XFO برای کاهش کلیک جک یافت نشد.

نحوه تنظیم یک سیاست کنترل فریم برای کاهش کلیک جک

یک خط مشی کنترل فریم باید روی هدرهای HTTP درخواست سند اولیه تنظیم شود. هدر X-Frame-Options و دستورالعمل frame-ancestors در Content-Security-Policy اگر روی عنصر <meta> تنظیم شود، کار نمی کند.

هدر XFO

تنظیم DENY یا SAMEORIGIN برای هدر XFO، حملات کلیک جک را کاهش می دهد:

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

دستورالعمل SAMEORIGIN تنها در صورتی به صفحه اجازه می دهد که منشأ مشابه خود صفحه داشته باشد. برعکس، دستورالعمل DENY از نمایش صفحه در یک قاب، صرف نظر از منشاء فریم مادر، جلوگیری می کند.

هدر CSP

دستورالعمل frame-ancestors در هدر CSP تعیین می کند که چه سایت هایی می توانند صفحه داده شده را در <frame> ، <iframe> ، <object> یا <embed> جاسازی کنند. مشابه XFO، دستورالعمل frame-ancestors CSP را می توان برای کاهش حملات کلیک جک با تنظیم آن بر روی self یا none استفاده کرد:

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

با این حال، دستورالعمل frame-ancestors انعطاف پذیرتر از XFO است زیرا می تواند منابع والد خاصی را تنظیم کند که ممکن است صفحه را جاسازی کنند:

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

منابع