Clickjacking یک حمله مخرب است که در آن کاربران فریب میخورند تا روی پیوندها یا عناصر رابط کاربری سایتی که به نظر میرسد یک سایت قابل اعتماد و آشنا است کلیک کنند. این معمولاً با جاسازی بخشی یا تمام سایت مورد اعتماد در سایت مخرب با استفاده از <iframe>
انجام می شود.
هدر X-Frame-Options
(XFO) و دستورالعمل frame-ancestors
در هدر Content-Security-Policy
(CSP) می تواند با کنترل نحوه جاسازی یک سایت در <iframe>
، حملات کلیک جک را کاهش دهد.
چگونه ممیزی فانوس دریایی شکست می خورد
اگر هدر XFO با SAMEORIGIN
یا DENY
تنظیم شده باشد، یا دستورالعمل frame-ancestors
روی هدر CSP تنظیم شده باشد، ممیزی انجام خواهد شد. اگر هیچ یک از این سیاستهای کنترل چارچوب پیکربندی نشود، ممیزی با شکست مواجه خواهد شد.
نحوه تنظیم یک سیاست کنترل فریم برای کاهش کلیک جک
یک خط مشی کنترل فریم باید روی هدرهای 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;