تفاعلات النوافذ المنبثقة الآمنة باستخدام المواقع المحظورة

يمكنك الحصول على عزل بين مصادر مختلفة وحماية من عمليات التسرب في جميع المواقع الإلكترونية أثناء التفاعل مع النوافذ المنبثقة.

Arthur Hemery
Maud Nalpas
Maud Nalpas

تتوفّر قيمة جديدة لسمة السياسة المحدّدة لفتح المستندات المشتركة المصدر (COOP): restrict-properties. ويقدّم هذا الإجراء مزايا أمنية ويسهّل استخدام عزل مصادر البيانات مع السماح لموقعك الإلكتروني بالتفاعل مع النوافذ المنبثقة التابعة لجهات خارجية للدفعات أو مصادقة المستخدمين أو حالات الاستخدام الأخرى.

لبدء تجربة restrict-properties، عليك المشاركة في مرحلة التجربة والتقييم اعتبارًا من الإصدار 116 من Chrome.

أسباب استخدام "restrict-properties"

هناك حالتا استخدام رئيسيتان restrict-properties:

منع تسرُّب المعلومات في جميع المواقع الإلكترونية بدون إيقاف البث

بشكل تلقائي، يمكن لأي موقع إلكتروني فتح تطبيقك في نافذة منبثقة والحصول على مرجع إليه.

ويمكن لموقع إلكتروني ضار الاستفادة من ذلك لتنفيذ هجمات مثل عمليات التسريب على مستوى المواقع الإلكترونية. للتخفيف من هذه المخاطر، يمكنك استخدام الرأس Cross-Origin-Opener-Policy (COOP).

حتى الآن، كانت خياراتك في ما يتعلّق بـ Cross-Origin-Opener-Policy محدودة. يمكنك اتّباع أحد الإجراءَين التاليَين:

  • اضبط same-origin, الذي يحظر جميع التفاعلات بين مصادر مختلفة مع النوافذ المنبثقة.
  • اضبط القيمة same-origin-allow-popups التي تحظر جميع التفاعلات بين مصادر مختلفة تؤدي إلى فتح موقعك الإلكتروني في نافذة منبثقة.
  • يمكنك ضبط unsafe-none، ما يسمح بجميع التفاعلات من مصادر متعددة من خلال النوافذ المنبثقة.

وهذا ما جعل من المستحيل على مواقع الويب التي يجب فتحها في نافذة منبثقة التفاعل مع افتتاحيةها لفرض سياسة COOP. وقد أدّى ذلك إلى عدم حماية حالات الاستخدام الرئيسية، مثل تسجيل الدخول باستخدام حساب واحد والدفعات، من عمليات التسريب على مستوى المواقع الإلكترونية.

يحلّ Cross-Origin-Opener-Policy: restrict-properties هذه المشكلة.

في restrict-properties، لا تتوفّر المواقع التي يمكن استخدامها لعدّ اللقطات وغيرها من هجمات التسريب على مستوى الموقع الإلكتروني، ولكن يُسمح بالاتصال الأساسي بين النوافذ من خلال postMessage وclosed.

يؤدي ذلك إلى تحسين أمان الموقع مع الاحتفاظ بحالات الاستخدام الرئيسية. على سبيل المثال:

  • في حال تقديم خدمة في نافذة منبثقة، سيؤدي ضبط Cross-Origin-Opener-Policy: restrict-properties إلى حماية نفسك من مجموعة من هجمات تسريب المواقع الإلكترونية المتعدّدة. سيظل بإمكانك فتح جميع الصفحات التي كان بإمكانك فتحها في السابق.
  • إذا كنت بحاجة إلى الوصول إلى نافذة منبثقة من مصادر متعددة، سيحمي ضبط Cross-Origin-Opener-Policy: restrict-properties موقعك الإلكتروني أيضًا من احتساب إطارات iframe. ستتمكّن من فتح المجموعة نفسها من الپامب-آب التي يمكنك فتحها اليوم.
  • إذا ضبط كلّ من المُفتتح والمُفتتح له العنوان، وكانت الصفحتان من مصادر مختلفة، سيعمل العنوان بالطريقة نفسها كما لو ضبط أحدهما العنوان. إذا كانت من المصدر نفسه، يتم منح إذن بالوصول الكامل.

حظر الوصول من نطاقات أخرى على موقعك الإلكتروني

سبب الحاجة إلى عزل المحتوى المضمّن من مصادر خارجية

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

حتى الآن، لاستخدام واجهات برمجة التطبيقات هذه، كان عليك ضبط Cross-Origin-Opener-Policy: same-origin. ومع ذلك، قد يؤدي هذا إلى إيقاف أي تدفق قد تحتاجه في نافذة منبثقة مشتركة المصدر، مثل الدخول الموحّد والدفعات.

يمكن الآن استخدام Cross-Origin-Opener-Policy: restrict-properties بدلاً من Cross-Origin-Opener-Policy: same-origin لتفعيل ميزة "حظر الوصول من نطاقات أخرى". بدلاً من إنهاء علاقة الافتتاح، يقتصر الأمر على مجموعة فرعية منخفضة من window.postMessage() وwindow.closed للتواصل.

ستتمكّن من تفعيل ميزة "حظر الوصول من نطاقات أخرى" باستخدام السطرَين التاليَين من ملف المحتوى:

Cross-Origin-Opener-Policy: restrict-properties
Cross-Origin-Embedder-Policy: require-corp

أو

Cross-Origin-Opener-Policy: restrict-properties
Cross-Origin-Embedder-Policy: credentialless

اطّلِع على مزيد من المعلومات عن credentialless على تحميل موارد من مصادر مختلفة بدون رؤوس CORP باستخدام COEP: credentialless.

عرض توضيحي

جرِّب خيارات عناوين متنوعة في هذا العرض التوضيحي لعزل المحتوى المتعدد المصادر.

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

لتجربة Cross-Origin-Opener-Policy: restrict-properties، يمكنك الاشتراك في فترة التجربة.

دعم المتصفح

لا يتوافق تطبيق "Cross-Origin-Opener-Policy: restrict-properties" حاليًا إلا في Chrome. إنّ المتصفحات الأخرى تشارك بنشاط في المناقشة حول عملية التوحيد.

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

يحتاج موقعي الإلكتروني إلى التواصل مع النوافذ المنبثقة من المصدر نفسه، فهل يجب استخدام COOP: restrict-properties لتفعيل ميزة "حظر الوصول من نطاقات أخرى"؟

لن يؤدي ضبط COOP: restrict-properties على كل من النافذة المنبثقة والصفحة الرئيسية إلى فرض قيود. سيؤدي ضبط هذا الإعداد على النافذة المنبثقة فقط أو على الصفحة الرئيسية فقط إلى منع أي وصول إلى المواقع الإلكترونية غير postMessage وclosed في جميع المواقع الإلكترونية التي تفتح النافذة المنبثقة، حتى إذا كانت من المصدر نفسه.

هل مجموعة السمات المسموح بها ثابتة؟

استنادًا إلى الملاحظات التي تلقّيناها حتى الآن، يُعتقد أنّ window.postMessage وwindow.closed يكفيان لمعظم سير العمل، ولكننا ما زلنا ننظر في إمكانية فتحهما للمواقع الأخرى. إذا كانت لديك حالة استخدام لا يمكن حلّها باستخدام postMessage وclosed فقط، يُرجى إرسال ملاحظاتك في سلسلة محادثات "الرغبة في إجراء تجربة".

الموارد