Defaults.Exposed

Defaults.Exposedالإصلاحات › ترويسات العزل عبر المصادر (COOP / CORP / COEP)

كيف تُصلح ترويسات العزل عبر المصادر (COOP / CORP / COEP)

ثلاث تعليمات متصفح اختيارية تتحكم في كيفية سماح مواقع أخرى بالتفاعل مع موقعك — فتحه في نوافذ منبثقة، أو تضمين صوره وسكربتاته، أو سحب موارده إلى صفحاتها. إنها تحصين حديث، لا ضرورة أساسية، وفي تقييمنا هي للعلم: غيابها لا يخفض درجتك. لكن الاثنتين الآمنتين تغلقان ثغرة هادئة للتصيّد وسرقة عرض النطاق، وفريق تقني لمشترٍ حذر سيلاحظ وجودهما.

الخلاصة لعملك: اثنتان من هذه الترويسات الثلاث تُغلقان تصيّداً متطوّراً عبر النوافذ المنبثقة وتوقفان مواقع أخرى عن ربط صورك وسكربتاتك مباشرة (وهو ما يكلّفك عرض نطاق ويمكن أن يُسرّب بيانات). إنها مجانية، تستغرق من مطوّر نحو 15 دقيقة، ولن تُعطّل شيئاً. أمّا الثالثة فمتقدمة وقد تُعطّل التحليلات والخطوط والمضمَّنات — وينبغي لمعظم الأنشطة التجارية تركها مُطفأة. ولا واحدة منها تؤثر في درجتك، فعامِلها كصقل لا ذعر: افعل الاثنتين الآمنتين، وتخطَّ الخطيرة ما لم تكن بحاجة محددة إليها.

ماذا قد يكلّفك هذا

لماذا يهمّ. هذه ترويسات تحصين متصفح تطلّعية. وفي منهجيتنا الثلاث جميعها للعلم — مسجَّلة بصفر نقاط ولا تحرّك درجتك أبداً — لأنها ضوابط متقدمة يمكن لموقع تشغيلها مشروعاً بدونها، وإحداها قد تضرّ إن أُسيء تطبيقها. نُبلّغ عنها لتتمكن من رؤية موقفك. والاثنتان الآمنتان (COOP وCORP) تستحقّان الإضافة فعلاً: مجانيتان، سريعتان، وتغلقان ثغرات حقيقية للتصيّد عبر النوافذ المنبثقة ولسرقة الموارد دون تعطيل أي شيء.

ما هذه، بكلمات بسيطة

حين يزور أحدهم موقعك، لا يحمّل متصفحه صفحاتك بمعزل فقط — بل يقرّر أيضاً كيف يُسمَح لمواقع أخرى بالتفاعل مع موقعك. هل يستطيع موقع آخر فتح موقعك في نافذة منبثقة والاحتفاظ به؟ هل يستطيع موقع آخر الوصول إليه وتضمين صورك وسكربتاتك في صفحاته؟ هل يستطيع موقعك أنت استخدام ميزات متصفح قوية محكَمة معيّنة بأمان؟

هذه الترويسات الثلاث تعليمات قصيرة غير مرئية يرسلها موقعك لمتصفح كل زائر للإجابة عن تلك الأسئلة بالضبط. وتُعرَف بأحرفها الأولى:

اثنتان منها (COOP وCORP) آمنتان للإضافة ومفيدتان فعلاً. والثالثة (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:

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، فأزِل الترويسة ببساطة — لا عقوبة على عدم وجودها.

ملاحظات المنصة

الأخطاء الشائعة

ملاحظة حول الدرجة

لأكون واضحاً تماماً: لا واحدة من هذه الفحوص الثلاثة تؤثر في درجتك. إنها مسجَّلة في منهجيتنا كمعلومات، بصفر نقاط، والمفقودة لا تكلّفك شيئاً أبداً. نعرضها لأن الاثنتين الآمنتين تحسينان رخيصان حقيقيان ولأن رؤية الصورة الكاملة مفيدة — لا لأن هناك رقماً يجب الدفاع عنه. إن لم تفعل شيئاً هنا، فدرجتك هي نفسها تماماً. وإن أضفت 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 غائبة ما لم تختبرها.