مرحلة التجربة والتقييم في إطار iframe مجهول: إمكانية تضمين إطارات iframe بسهولة في بيئات COEP

آرثر سونزوجني
آرثر سونزوغني

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

سبب حاجتنا إلى سياسة حماية خصوصية البيانات (COEP)

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

لتفعيل ميزة العزل المشترك المصدر، على المواقع الإلكترونية إرسال عنوانَي HTTP التاليين:

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

تحديات تفعيل سياسة حماية خصوصية البيانات (COEP)

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

وعادة ما يتم عرض إطارات iframe من قبل جهة خارجية قد لا يكون من السهل نشر COEP لها.

إطار iframe مجهول للإنقاذ

وهنا يأتي دور إطار iframe المجهول. عند إضافة السمة anonymous إلى العنصر <iframe>، يتم تحميل إطار iframe من قسم مختلف لمساحة التخزين المؤقتة ولا يخضع لقيود COEP بعد الآن.

مثال:

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

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

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

تجريبي

يمكنك التحقّق من إطار iframe مجهول على الرابط التالي: https://anonymous-iframe.glitch.me/

التسجيل في مرحلة التجربة والتقييم

لضمان أن إطارات iframe المجهولة تساعد المطوّرين في اعتماد ميزة العزل من مصادر متعددة، نعمل على توفيرها في Chrome من الإصدار 106 إلى الإصدار 108 كتجربة مصدر.

يُرجى التسجيل في مرحلة التجربة والتقييم لتفعيل موقعك الإلكتروني من استخدام إطارات iframe مجهولة الهوية:

  1. اطلب رمزًا مميّزًا للأصل.
  2. استخدِم الرمز المميّز بإحدى الطرق التالية:
    • في محتوى HTML: html <meta http-equiv="Origin-Trial" content="TOKEN_GOES_HERE">
    • في JavaScript: js const meta = document.createElement('meta'); meta.httpEquiv = 'Origin-Trial'; meta.content = 'TOKEN_GOES_HERE'; document.head.append(meta);
    • في عناوين HTTP: text Origin-Trial: TOKEN_GOES_HERE
  3. إضافة إطار iframe مجهول الهوية إلى صفحتك: html <iframe anonymous src="https://example.com">

إذا كان لديك أي ملاحظات على هذه الميزة، يُرجى الإبلاغ عن مشكلة في مستودع جيت هب.

مرحلة التجربة والتقييم من جهة خارجية

تتوفّر مرحلة التجربة والتقييم أيضًا للنصوص البرمجية التابعة لجهات خارجية. وهذا يعني أنه يمكن تفعيلها عن طريق النصوص البرمجية المضمّنة في الصفحة.

اطّلِع على مزيد من المعلومات حول كيفية التسجيل في مرحلة تجريبية من جهة خارجية.

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

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

هل إطارات iframe المدمجة داخل <iframe anonymous> مجهولة الهوية؟

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

هل النوافذ المنبثقة التي تم إنشاؤها من <iframe anonymous> مجهولة الهوية أيضًا؟

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

المراجِع