بدون بيانات اعتماد Iframe: يمكنك تضمين إطارات iframe بسهولة في بيئات COEP.

Arthur Sonzogni
Arthur Sonzogni

يمكن الآن للمطوّرين الذين يستخدمون بروتوكول COEP تضمين إطارات iframe تابعة لجهات خارجية لا تستخدم سياسة COEP نفسها.

يتم تفعيل ميزة "بدون بيانات اعتماد Iframe" تلقائيًا من الإصدار 110 من Chrome. يحلّ هذا النموذج الشكاوى الأكثر شيوعًا التي يطبّقها المطوّرون الذين يستخدمون سياسة تضمين المحتوى المتعدد المصادر (COEP)، وهو: تضمين إطارات iframe تابعة لجهات خارجية لم يتم ضبط سياسة COEP فيها.

سبب حاجتنا إلى سياسة مشاركة المعلومات (COEP)

تزيد بعض واجهات برمجة تطبيقات الويب من خطر وقوع هجمات على القناة الجانبية، مثل Spectre. للحدّ من هذه المخاطر، توفّر المتصفِّحات بيئة معزولة ومستندة إلى خيار الموافقة، تُسمى عزل المحتوى المتعدد المصادر، والتي تتطلّب نشر سياسة خصوصية المستهلك في كاليفورنيا (COEP). تسمح ميزة العزل المشترك المصدر للمواقع الإلكترونية باستخدام ميزات خاصة، بما في ذلك SharedArrayBuffer وperformance.measureUserAgentSpecificMemory() والموقّتات العالية الدقة بدرجة دقة أفضل.

لتفعيل حظر الوصول من نطاقات أخرى، يجب أن ترسل المواقع الإلكترونية عناوين HTTP التالية:

Cross-Origin-Embedder-Policy: require-corp
Cross-Origin-Opener-Policy: same-origin

يمكن أيضًا استخدام COEP:certifiedless كبديل لـ require-corp. يمكنك الاطّلاع على المستندات لمزيد من التفاصيل.

تحديات تفعيل "سياسة حقوق الطبع والنشر الموثوقة" (COEP)

على الرغم من أنّ حظر الوصول من نطاقات أخرى يوفّر لصفحات الويب مستوى أمان أفضل وإمكانية تفعيل ميزات فعّالة، قد يكون نشر بروتوكول COEP صعبًا. يتمثّل أحد أكبر التحديات في أنّ جميع إطارات iframe المتعددة المصادر يجب أن تنشر بروتوكول COEP وCORP. ولن يحمّل المتصفّح إطارات iframe التي لا تحتوي على هذه العناوين.

إطار iframe غير معتمد لإنقاذ الآخرين

ونوفّر <iframe credentialless> للمساعدة في تضمين إطارات iframe تابعة لجهات خارجية لم يتم ضبط سياسة COEP. عند إضافة السمة credentialless إلى العنصر <iframe>، يتم تحميل إطار iframe من سياق فارغ مختلف. وعلى وجه الخصوص، يتم تحميلها بدون ملفات تعريف الارتباط. يتيح ذلك إزالة تقييد سياسة مشاركة المعلومات (COEP).

مثال:

<iframe credentialless src="https://example.com">

يتم إنشاء إطار iframe هذا في سياق مؤقت جديد ولا يمكنه الوصول إلى أيّ من ملفات تعريف الارتباط المرتبطة بالموقع الإلكتروني ذي المستوى الأعلى. بدلاً من ذلك، يبدأ بوعاء ملفات تعريف الارتباط فارغ. بالمثل، يمكن لواجهات برمجة تطبيقات التخزين، مثل LocalStorage وCacheStorage وIndexedDB وما إلى ذلك، تحميل البيانات وتخزينها في القسم المؤقت الجديد. يتم تحديد نطاق التقسيم لكل من مستند المستوى الأعلى الحالي وأصل إطار iframe. يتم محو كل مساحة التخزين هذه بعد إلغاء تحميل مستند المستوى الأعلى.

ولا تخضع إطارات iframe التي لا تتضمّن بيانات اعتماد لقواعد تضمين سياسة COEP. ولا تزال آمنة: نظرًا لتحميلها من سياق فارغ جديد في كل مرة، يجب ألا تحتوي على بيانات مخصَّصة، وهو ما يسعى المهاجمون إلى ممارسته. إذا كان iframe يحتوي على بيانات عامة فقط، فلن يكون ذا قيمة للمهاجم.

عرض توضيحي

يمكنك الاطّلاع على عرض توضيحي لإطار iframe بدون بيانات اعتماد.

الأسئلة الشائعة

هل سيتم استخدام هذه الميزة في المتصفحات الأخرى؟

هل تم دمج <iframe> داخل <iframe credentialless> بدون بيانات اعتماد؟

نعم. وراثة. عندما يصبح إطار iframe غير معنيّ ببيانات الاعتماد، ينطبق ذلك على جميع إطارات iframe في الشجرة الفرعية بأكملها حتى بدون سمة credentialless.

هل النوافذ المنبثقة التي يتم إنشاؤها من <iframe credentialless> غير بيانات اعتماد أيضًا؟

يتم فتح النوافذ المنبثقة كما لو تم ضبط noopener. ويتم إنشاؤها في سياق مستوى أعلى عادي جديد وليست بدون بيانات اعتماد. ولا يمكنها الاتصال بإطار iframe غير المعتمد على بيانات الاعتماد.

كيف يمكن اكتشاف أن المستند مضمّن في إطار iframe بدون بيانات اعتماد؟

تكون السمة window.credentialless صحيحة داخل إطار iframe بدون بيانات اعتماد، وتكون على false في الحالات الأخرى. قيمتها هي undefined في متصفّح ويب غير متوافق مع <iframe credentialless>.

الموارد