بدون بيانات اعتماد 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:credentialless أيضًا كبديل لـ 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 true داخل إطار iframe بدون بيانات اعتماد وتكون القيمة false في الحالات الأخرى. قيمتها هي undefined في متصفّح ويب غير متوافق مع <iframe credentialless>.

المراجِع