يمكنك الحصول على عزل بين مصادر مختلفة وحماية من عمليات التسرب في جميع المواقع الإلكترونية أثناء التفاعل مع النوافذ المنبثقة.
تتوفّر قيمة جديدة لسمة
السياسة المحدّدة لفتح المستندات المشتركة المصدر (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
التي تسمح بجميع التفاعلات بين مصادر مختلفة مع النوافذ المنبثقة.
وقد أدّى ذلك إلى استحالة فرض ميزة "التعاون في التسويق" على المواقع الإلكترونية التي يجب فتحها في نافذة منبثقة والتفاعل مع النافذة المنبثقة التي فتحتها. وقد أدّى ذلك إلى عدم حماية حالات الاستخدام الرئيسية، مثل تسجيل الدخول باستخدام حساب واحد والدفعات، من عمليات التسريب على مستوى المواقع الإلكترونية.
يحلّ 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