يمكنك الحصول على عزل بين مصادر مختلفة وحماية من عمليات التسرب في جميع المواقع الإلكترونية أثناء التفاعل مع النوافذ المنبثقة.
تتوفّر قيمة جديدة لسمة
السياسة المحدّدة لفتح المستندات المشتركة المصدر (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
فقط، يُرجى إرسال ملاحظاتك
في سلسلة محادثات "الرغبة في إجراء تجربة".
الموارد
- جعل موقعك الإلكتروني "معزولًا عن مصادر متعددة" باستخدام السياستَين "COOP" و"COEP"
- سبب الحاجة إلى "حظر الوصول من نطاقات أخرى" للحصول على ميزات فعّالة
- دليل تفعيل حظر الوصول من نطاقات أخرى
- تعديلات SharedArrayBuffer في الإصدار 88 من Chrome لنظام التشغيل Android والإصدار 92 من Chrome لأجهزة الكمبيوتر المكتبي
- تحميل موارد من مصادر متعددة بدون عناوين CORP باستخدام
COEP: credentialless
- مطوّرو Chrome - تجربة مصدر إطار iframe المجهول: تضمين إطارات iframe بسهولة في بيئات COEP - مطوّرو Chrome