Defaults.Exposed › الإصلاحات › ترويسات العزل عبر المصادر (COOP / CORP / COEP)
كيف تُصلح ترويسات العزل عبر المصادر (COOP / CORP / COEP)
ثلاث تعليمات متصفح اختيارية تتحكم في كيفية سماح مواقع أخرى بالتفاعل مع موقعك — فتحه في نوافذ منبثقة، أو تضمين صوره وسكربتاته، أو سحب موارده إلى صفحاتها. إنها تحصين حديث، لا ضرورة أساسية، وفي تقييمنا هي للعلم: غيابها لا يخفض درجتك. لكن الاثنتين الآمنتين تغلقان ثغرة هادئة للتصيّد وسرقة عرض النطاق، وفريق تقني لمشترٍ حذر سيلاحظ وجودهما.
الخلاصة لعملك: اثنتان من هذه الترويسات الثلاث تُغلقان تصيّداً متطوّراً عبر النوافذ المنبثقة وتوقفان مواقع أخرى عن ربط صورك وسكربتاتك مباشرة (وهو ما يكلّفك عرض نطاق ويمكن أن يُسرّب بيانات). إنها مجانية، تستغرق من مطوّر نحو 15 دقيقة، ولن تُعطّل شيئاً. أمّا الثالثة فمتقدمة وقد تُعطّل التحليلات والخطوط والمضمَّنات — وينبغي لمعظم الأنشطة التجارية تركها مُطفأة. ولا واحدة منها تؤثر في درجتك، فعامِلها كصقل لا ذعر: افعل الاثنتين الآمنتين، وتخطَّ الخطيرة ما لم تكن بحاجة محددة إليها.
ماذا قد يكلّفك هذا
- يفتح محتال موقعك الحقيقي في نافذة منبثقة ويحتفظ بتحكّم عن بُعد بها — مُعيداً بصمت توجيه عميلك إلى تسجيل دخول مزيّف لحظة أن ينظر بعيداً. الترويسة الآمنة (COOP) تقطع تلك الصلة بالتحكّم كلياً.
- تضمّن مواقع أخرى صور منتجاتك وشعاراتك وسكربتاتك مباشرة من خادمك (الربط الساخن) — فتدفع ثمن عرض النطاق في كل مرة يحمّل زوّارهم الصفحة، وتظهر أصولك على مواقع ما كنت لتوافق عليها أبداً.
- يُجري فريق الأمن لدى عميل محتمل مسح ترويسات قبل التوقيع فيرى أنك أضفت تحصيناً حديثاً عبر المصادر — إشارة صغيرة، لكنها تضعك في خانة 'يأخذون هذا على محمل الجدّ' بدلاً من خانة 'الحدّ الأدنى'.
- يحاول مطوّر، سعياً للدقّة، تفعيل ترويسة العزل المتقدمة (COEP) دون اختبار — فيُعطّل Google Analytics وخطوط الويب وأداة الحجز المضمَّنة بين عشية وضحاها. ومعرفة أيّ ترويسة آمنة وأيّها خطيرة تتجنّب انقطاعاً مُتسبّباً به ذاتياً.
- تذكر قائمة تحقق مدقّق العزل عبر المصادر؛ فتُفضّل إظهار 'موجود وصحيح' على الاثنتين الآمنتين بدلاً من شرح سبب عدم وجود أي شيء أصلاً.
لماذا يهمّ. هذه ترويسات تحصين متصفح تطلّعية. وفي منهجيتنا الثلاث جميعها للعلم — مسجَّلة بصفر نقاط ولا تحرّك درجتك أبداً — لأنها ضوابط متقدمة يمكن لموقع تشغيلها مشروعاً بدونها، وإحداها قد تضرّ إن أُسيء تطبيقها. نُبلّغ عنها لتتمكن من رؤية موقفك. والاثنتان الآمنتان (COOP وCORP) تستحقّان الإضافة فعلاً: مجانيتان، سريعتان، وتغلقان ثغرات حقيقية للتصيّد عبر النوافذ المنبثقة ولسرقة الموارد دون تعطيل أي شيء.
ما هذه، بكلمات بسيطة
حين يزور أحدهم موقعك، لا يحمّل متصفحه صفحاتك بمعزل فقط — بل يقرّر أيضاً كيف يُسمَح لمواقع أخرى بالتفاعل مع موقعك. هل يستطيع موقع آخر فتح موقعك في نافذة منبثقة والاحتفاظ به؟ هل يستطيع موقع آخر الوصول إليه وتضمين صورك وسكربتاتك في صفحاته؟ هل يستطيع موقعك أنت استخدام ميزات متصفح قوية محكَمة معيّنة بأمان؟
هذه الترويسات الثلاث تعليمات قصيرة غير مرئية يرسلها موقعك لمتصفح كل زائر للإجابة عن تلك الأسئلة بالضبط. وتُعرَف بأحرفها الأولى:
- COOP — Cross-Origin-Opener-Policy. تتحكم في ما إذا كانت مواقع أخرى تفتح موقعك في نافذة منبثقة يمكنها الاحتفاظ بتحكّم عن بُعد به.
- CORP — Cross-Origin-Resource-Policy. تتحكم في ما إذا كان يُسمَح لمواقع أخرى بتضمين صورك وسكربتاتك وملفاتك الأخرى في صفحاتها.
- COEP — Cross-Origin-Embedder-Policy. ضابط متقدم يقوم، مقترناً بـ COOP، بـ “عزل” صفحتك بحيث تستطيع استخدام ميزات متصفح قوية معيّنة بأمان.
اثنتان منها (COOP وCORP) آمنتان للإضافة ومفيدتان فعلاً. والثالثة (COEP) متقدمة وقد تُعطّل أشياء إن فُعِّلت بإهمال.
الأهمّ الذي يجب معرفته سلفاً: في تقييمنا، الثلاث جميعها للعلم. لا تؤثر في درجتك. والمفقودة لا تكلّفك شيئاً. نُبلّغ عنها لتتمكن من رؤية موقفك وترتيب الفوز السهل — لا لتذعر من رقم.
ما قد يكلّفك هذا
هذه مخاطر متخصّصة، لا بارزة — لكنها حقيقية، والإصلاحات مجانية.
-
تصيّد عبر النوافذ المنبثقة يحتفظ بتحكّم عن بُعد بموقعك الحقيقي. بدون COOP، تستطيع صفحة محتال فتح موقعك الفعلي في نافذة منبثقة والاحتفاظ بمرجع حيّ له. وبينما يكون انتباه عميلك على صفحة المحتال، يستطيع المهاجم إعادة توجيه تلك النافذة المنبثقة — ونطاقك الحقيقي في شريط العنوان — إلى شاشة تسجيل دخول أو دفع مزيّفة في اللحظة بالذات التي يلتفت فيها العميل إليها. وCOOP مضبوطة على “same-origin” تقطع تلك الصلة بالتحكّم فلا يمكن التحكّم بالنافذة المنبثقة كالدمية.
-
مواقع أخرى تسرق عرض نطاقك (وتضع أصولك حيث لا تريد). بدون CORP، يستطيع أي موقع على الإنترنت تضمين صور منتجاتك وشعاراتك وسكربتاتك وملفاتك الأخرى مباشرة من خادمك — “الربط الساخن”. فيُنزِّل كل زائر لصفحة موقعهم الملف من موقعك، على فاتورة عرض النطاق لديك، مع ظهور أصلك في سياق لم توافق عليه أبداً. وCORP مضبوطة على “same-origin” توقف المواقع الخارجية عن تضمين مواردك.
-
مسار تسريب بيانات هادئ لهجمات المتصفح المتقدمة. التضمين عبر المصادر نفسه الذي يُمكِّن الربط الساخن هو أيضاً أحد المسارات التي تستخدمها هجمات المتصفح المتطوّرة عبر القنوات الجانبية (عائلة Spectre) لقراءة بيانات ما كان ينبغي لها قراءتها. وCOOP وCORP معاً تُغلقان ذلك المسار على مستوى المتصفح. ولمعظم الأنشطة الصغيرة هذا احتياط متعدد الطبقات، لكنه احتياط مجاني.
-
انقطاع مُتسبَّب به ذاتياً من الترويسة الخطأ. المتقدمة، COEP، تتطلب أن يوافق كل مورد يحمّله موقعك صراحةً. فعّلها دون اختبار فتتوقف تحليلاتك وخطوط الويب والخرائط المضمَّنة وأدوات الحجز وسكربتات الأطراف الثالثة جميعها عن التحميل — لأن لا أحد منها طُلِب منه الموافقة. هذه الطريقة الوحيدة التي يمكن لهذه الترويسات فعلاً أن تضرّك بها، وهي قابلة للتجنّب تماماً: لا تفعّل COEP دون اختبار.
-
إشارة سهلة ضائعة للمشترين الحذرين. حين يمسح فريق تقني لعميل محتمل ترويساتك قبل التوقيع، فإن إيجاد تحصين حديث عبر المصادر في مكانه إشارة صغيرة لكنها حقيقية على أن “هؤلاء يأخذون الأمن على محمل الجدّ”. لن تكسب صفقة وحدها — لكنها مجانية لتكون على الجانب الصحيح من ذلك السجلّ.
ما هي كلّ منها فعلاً
COOP — Cross-Origin-Opener-Policy (آمنة، موصى بها)
حين يفتح موقع آخر موقعك باستخدام نافذة منبثقة أو window.open، يمكن للنافذتين عادة الاحتفاظ بمرجع لبعضهما. ويمكن إساءة استغلال تلك الصلة: فيستطيع الفاتح التلاعب بنافذتك أو إعادة توجيهها، وقراءة أجزاء من عنوانها، وإعداد تصيّد مقنع باستخدام نطاقك الحقيقي. COOP: same-origin تكسر تلك العلاقة — فتصبح نافذتك معزولة عن أي شيء فتحها عبر المصادر. أمّا التصفّح الطبيعي وروابطك الداخلية والتنقّل العادي فلا تتأثر إطلاقاً.
كيف يبدو “الجيد”: Cross-Origin-Opener-Policy: same-origin.
CORP — Cross-Origin-Resource-Policy (آمنة، موصى بها)
افتراضياً، يمكن لـ أي موقع في أي مكان تضمين صورك وسكربتاتك وملفاتك الأخرى. CORP: same-origin تُخبر المتصفحات برفض التضمين عبر المصادر لمواردك — فلا تستطيع مواقع أخرى الربط الساخن بأصولك أو سحبها إلى صفحاتها. ويظلّ موقعك أنت يحمّل موارده تماماً كما قبل؛ والمحجوبة هي المواقع الخارجية فقط.
كيف يبدو “الجيد”: Cross-Origin-Resource-Policy: same-origin. (إن كنت تنشر عمداً أصولاً ليضمّنها آخرون — شعار عام، واجهة برمجية مفتوحة — فيستطيع مطوّرك تخفيف هذا على تلك الاستجابات المحددة.)
COEP — Cross-Origin-Embedder-Policy (متقدمة، عادة اتركها مُطفأة)
COEP تُكمِل “العزل عبر المصادر”: فمقترنةً بـ COOP، تتطلب أن يوافق كل مورد تحمّله صفحتك صراحةً (عبر CORS أو CORP). وإن أُحسِن، يفتح هذا ميزات متصفح قوية معيّنة (مثل SharedArrayBuffer) ويضيف طبقة أخرى ضد هجمات فئة Spectre. لكن لأنها تتطلب موافقة من كل ما تحمّله، فإنها تُعطّل بسهولة أدوات الأطراف الثالثة — التحليلات، الخطوط، الأدوات المضمَّنة — التي لم تُبنَ للموافقة. ومعظم المواقع لا تحتاج الميزات التي تفتحها ولا ينبغي أن تحمل خطر التعطيل.
كيف يبدو “الجيد”: للموقع النادر الذي يحتاجها، Cross-Origin-Embedder-Policy: credentialless — القيمة الأأمن، الأقل احتمالاً لتعطيل الموارد الخارجية من require-corp. وللجميع غيره، الغياب سليم، ولن يعاقبك تقريرنا عليه.
كيفية الإصلاح (مجاناً، ~15 دقيقة)
سلّم هذا للشخص التقني لديك أو مطوّر الويب — الإصلاح مجاني. إضافة COOP وCORP إعدادان من سطر واحد على خادمك أو CDN لديك؛ لا ترخيص ولا تكلفة مستمرة. والتعليمة الوحيدة للمالك: افعل الاثنتين الآمنتين، ولا تفعّل COEP دون اختبار.
هذه ترويسات استجابة، تُضبَط حيثما تُنتَج استجابات موقعك — أسهلها في CDN لديك (مثل Cloudflare) إن كان لديك، وإلا ففي إعداد خادم الويب الخاص بك.
الترويستان الآمنتان (موصى بهما للجميع)
Cloudflare — Rules ← Transform Rules ← Modify Response Headers ← Set:
Cross-Origin-Opener-Policy=same-originCross-Origin-Resource-Policy=same-origin
Nginx:
add_header Cross-Origin-Opener-Policy "same-origin" always;
add_header Cross-Origin-Resource-Policy "same-origin" always;
Apache:
Header always set Cross-Origin-Opener-Policy "same-origin"
Header always set Cross-Origin-Resource-Policy "same-origin"
هذه آمنة للإضافة ولن تُعطّل الوظائف الطبيعية. بعد النشر، أعِد تحميل بضع صفحات وتأكد من أن الموقع يتصرّف تماماً كما قبل (ينبغي ذلك).
الترويسة المتقدمة (فقط إن كنت بحاجة محددة لها)
لا تفعّلها دون اختبار في بيئة تجريبية أولاً. COEP قد تُعطّل التحليلات والخطوط والأدوات المضمَّنة.
Cloudflare: Transform Rules ← اضبط Cross-Origin-Embedder-Policy = credentialless.
Nginx:
add_header Cross-Origin-Embedder-Policy "credentialless" always;
استخدم credentialless بدلاً من require-corp — فهي أقل احتمالاً لتعطيل الموارد الخارجية. اختبر جيداً في بيئة تجريبية؛ وراقِب أي سكربت طرف ثالث أو خطّ أو مضمَّن يتوقف عن التحميل. وإن تعطّل شيء ولم تكن بحاجة فعلاً للميزات التي تفتحها COEP، فأزِل الترويسة ببساطة — لا عقوبة على عدم وجودها.
ملاحظات المنصة
- Google Workspace / Microsoft 365: هذان يشغّلان بريدك، لا موقعك، فلا شيء لضبطه هنا. هذه الترويسات تخصّ أيّاً يستضيف موقعك (CDN لديك، أو المضيف، أو الخادم).
- المضيفون المُدارون / منشئو المواقع الشائعون (Wix، Squarespace، Shopify، إلخ): قد لا تكون ترويسات الاستجابة المخصّصة قابلة للإعداد على الخطط الأدنى. وإن لم تستطع إضافتها، فذلك سليم — فهذه للعلم ولا تؤثر في درجتك. ووضع موقعك خلف CDN مثل Cloudflare هو الطريقة المعتادة لاكتساب التحكّم في الترويسات.
- WordPress على استضافتك الخاصة: اضبطها في إعداد خادم الويب الخاص بك (Nginx/Apache أعلاه) أو عبر CDN لديك، لا في إضافة حيثما أمكن — فمستوى الخادم/CDN أنظف ويُطبَّق على كل استجابة.
الأخطاء الشائعة
- تفعيل COEP “للدقّة” وتعطيل الموقع. هذا الأكبر. COEP تتطلب موافقة من كل ما تحمّله؛ فعّلها دون اختبار فتختفي تحليلاتك وخطوطك ومضمَّناتك. وإن لم تكن بحاجة لميزات المتصفح التي تفتحها، فلا تضبطها.
- معاملتها كعاجلة لأن ماسحاً ذكرها. إنها للعلم. ترويسات الويب المُقيَّمة (HTTPS، HSTS، CSP، اختطاف النقر، تخمين نوع المحتوى) تأتي أولاً — أصلِح تلك قبل إنفاق أي طاقة هنا.
- ضبط CORP بصرامة مفرطة بينما تنشر فعلاً أصولاً قابلة للتضمين. إن كنت تقدّم عمداً شعاراً أو شارة أو واجهة برمجية لتستخدمها مواقع أخرى، فإن CORP
same-originشاملة ستحجبها. خفّفها على تلك الاستجابات فقط بدلاً من التخلّي عن الترويسة في كل مكان. - إضافة الترويسة على مستوى الصفحة/التطبيق وإغفال بعض الاستجابات. اضبطها على مستوى الخادم أو CDN لتُطبَّق على كل استجابة (الصور، السكربتات، نقاط نهاية الواجهة البرمجية)، لا صفحات HTML فقط.
- الخلط بينها وبين قفل SSL. HTTPS يشفّر الاتصال؛ وهذه تتحكم في التفاعل عبر المواقع. لا علاقة بينها، وأنت تريد كليهما.
ملاحظة حول الدرجة
لأكون واضحاً تماماً: لا واحدة من هذه الفحوص الثلاثة تؤثر في درجتك. إنها مسجَّلة في منهجيتنا كمعلومات، بصفر نقاط، والمفقودة لا تكلّفك شيئاً أبداً. نعرضها لأن الاثنتين الآمنتين تحسينان رخيصان حقيقيان ولأن رؤية الصورة الكاملة مفيدة — لا لأن هناك رقماً يجب الدفاع عنه. إن لم تفعل شيئاً هنا، فدرجتك هي نفسها تماماً. وإن أضفت COOP وCORP، فقد أغلقت ثغرتين حقيقيتين (وإن كانتا متخصّصتين) مجاناً. تلك هي الطريقة الصحيحة للتفكير في هذه الصفحة: صقل اختياري، مع فخّ واحد مُعلَّم بوضوح يجب تجنّبه.
الأسئلة الشائعة
هذه لا تؤثر في درجتي — هل عليّ أن أتعب بها أصلاً؟
اثنتان منها، نعم؛ وواحدة، على الأرجح لا. COOP وCORP مجانيتان، تستغرقان دقائق، ولن تُعطّلا موقعك — وتغلقان مسارات هجوم حقيقية (وإن كانت متخصّصة)، فتستحقّان الفعل كنظافة رخيصة. أمّا COEP فمتقدمة وقد تُعطّل أدوات الأطراف الثالثة، فينبغي لمعظم الأنشطة تركها مُطفأة ما لم تكن بحاجة محددة لميزات المتصفح التي تفتحها. ولا واحدة من الثلاث تغيّر درجتك على أي حال، فلا استعجال — عامِل الاثنتين الآمنتين كترتيب في المرة القادمة التي يكون فيها مطوّرك داخل الموقع.
لستُ شخصاً تقنياً — هل هذا أمر عليّ التعامل معه؟
ليس بنفسك، وليس على وجه الاستعجال. ولأنها للعلم، لا يحدث شيء سيئ لدرجتك إن تخطّيتها. وإن أردت إضافة الاثنتين الآمنتين، فسلّم قسم 'كيفية الإصلاح' لمن يدير موقعك أو CDN لديك — إنه إعدادان من سطر واحد والإصلاح مجاني. والوحيدة التي يجب التنبيه إليها صراحةً هي COEP: أخبرهم ألّا يفعّلوها دون اختبار، لأنها قد تُعطّل التحليلات والأدوات المضمَّنة.
ما الفرق بين هذه والترويسات التي تؤثر فعلاً في درجتي؟
ترويسات أمن الويب المُقيَّمة — إعادة توجيه HTTPS، وHSTS، وContent-Security-Policy، والحماية من اختطاف النقر (X-Frame-Options)، والحماية من تخمين نوع المحتوى — تدافع عن هجمات شائعة ومستغَلّة على نطاق واسع، فيكلّف غيابها نقاطاً. أمّا الثلاث في هذه الصفحة (COOP وCORP وCOEP) فأحدث وأكثر تخصّصاً في عزل المتصفح. إنها ممارسة جيدة لكنها ليست بعد توقّعاً أساسياً، فنُبلّغ عنها دون تقييمها. افعل المُقيَّمة أولاً؛ وهذه صقل فوقها.
هل سيُعطّل إضافة COOP أو CORP موقعي أو تكاملات شركائي؟
الإعدادات الموصى بها (كلاهما 'same-origin') مصمَّمة لتكون آمنة. COOP تقطع فقط الصلة بالنوافذ التي يفتحها موقعك في نوافذ منبثقة — أمّا التصفّح الطبيعي وصفحاتك والروابط العادية فلا تتأثر. وCORP توقف فقط *مواقع أخرى* عن تضمين صورك وسكربتاتك؛ ويحمّل موقعك موارده تماماً كما قبل. وإذا كنت تقدّم فعلاً أصولاً (مثل شعار عام أو واجهة برمجية) يُفترَض بمواقع أخرى تضمينها، فيستطيع مطوّرك استخدام إعداد أكثر تساهلاً على تلك الاستجابات المحددة. والوحيدة التي تُخاطر فعلاً بالتعطيل هي COEP — أبقِها مُطفأة ما لم تُختبَر.
ماذا يكلّفني 'الربط الساخن' فعلاً؟
حين يضمّن موقع آخر صورتك أو سكربتك مباشرة من خادمك بدلاً من استضافة نسخته، يُنزِّل كل زائر لصفحته إياها منك — على فاتورة عرض النطاق لديك، ومُظهِراً أصلك في سياق لم توافق عليه. ولنشاط تجاري صغير نادراً ما يكون كارثياً، لكنه مال مجاني يخرج من الباب، وCORP ('same-origin') توقفه على مستوى المتصفح. وتغلق أيضاً مسار تسريب بيانات خفياً تعتمد عليه هجمات المتصفح المتقدمة (من فئة Spectre).
كيف يبدو 'الجيد' لكلّ منها؟
COOP: ترويسة Cross-Origin-Opener-Policy مضبوطة على 'same-origin'. CORP: ترويسة Cross-Origin-Resource-Policy مضبوطة على 'same-origin'. COEP: ترويسة Cross-Origin-Embedder-Policy — وإن ضبطتها أصلاً، فإن 'credentialless' قيمة أأمن من 'require-corp'. ويلاحظ تقريرنا ببساطة ما إذا كانت كلّ منها موجودة وعلى أيّ قيمة؛ ولا يعاقبك أبداً على مفقودة. اهدف إلى وجود COOP وCORP؛ واترك COEP غائبة ما لم تختبرها.