الحدّ من هجمات clickjacking باستخدام XFO أو CSP

تمويه النقر هو هجوم ضارّ يتم فيه خداع المستخدمين من أجل النقر على روابط أو عناصر واجهة مستخدم على موقع إلكتروني يبدو أنّه موقع إلكتروني موثوق به ومألوف. ويتم عادةً تنفيذ ذلك من خلال تضمين جزء من الموقع الإلكتروني الموثوق به أو كلّه في الموقع الإلكتروني الضار باستخدام <iframe>.

يمكن أن يخفّف عنوان X-Frame-Options ‏ (XFO) وتوجيه frame-ancestors في عنوان Content-Security-Policy ‏ (CSP) من هجمات التلاعب بالنقرات من خلال التحكّم في كيفية تضمين موقع إلكتروني في <iframe>.

أسباب تعذُّر إكمال عملية تدقيق Lighthouse

ستجتاز عملية التدقيق إذا تم ضبط عنوان 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، يمكن استخدام توجيه CSP frame-ancestors للحدّ من هجمات clickjacking من خلال ضبطه على 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;

الموارد