ملفات تعريف الارتباط التي لديها حالة منفصلة (CHIPS)

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

حالة التنفيذ

Browser Support

  • Chrome: 114.
  • Edge: 114.
  • Firefox: 141.
  • Safari: not supported.

Source

ما هي ميزة "ملفات تعريف الارتباط في الحالة المقسَّمة المنفصلة"؟

تتيح ميزة "ملفات تعريف الارتباط في الحالة المقسَّمة المنفصلة" (CHIPS) للمطوّرين إمكانية إعداد ملف تعريف ارتباط في مساحة تخزين مقسَّمة، مع مساحات تخزين منفصلة لملفات تعريف الارتباط لكل موقع إلكتروني من المستوى الأعلى، ما يؤدي إلى تحسين خصوصية المستخدم وأمانه.

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

إنّ واجهة برمجة التطبيقات Storage Access API ومجموعات المواقع الإلكترونية المرتبطة وملفات تعريف الارتباط المقسّمة حسب الموقع (CHIPS) هي الطريقة الوحيدة لقراءة ملفات تعريف الارتباط وكتابتها من سياقات المواقع الإلكترونية المختلفة، مثل إطارات iframe، عند حظر ملفات تعريف الارتباط التابعة لجهات خارجية.

رسم بياني يوضّح كيفية مشاركة ملفات تعريف الارتباط بين موقعَين إلكترونيَّين مختلفَين
بدون تقسيم ملفات تعريف الارتباط، يمكن لخدمة تابعة لجهة خارجية ضبط ملف تعريف ارتباط عند تضمينها في موقع إلكتروني واحد من المستوى الأعلى، والوصول إلى ملف تعريف الارتباط نفسه عند تضمين الخدمة في مواقع إلكترونية أخرى من المستوى الأعلى.

توفّر ميزة "ملفات تعريف الارتباط في الحالة المقسَّمة المنفصلة" سمة جديدة لملفات تعريف الارتباط، وهي Partitioned، من أجل إتاحة ملفات تعريف الارتباط على مواقع إلكترونية مختلفة يتم تقسيمها حسب السياق ذي المستوى الأعلى.

عنوان Set-Cookie:

Set-Cookie: __Host-name=value; Secure; Path=/; SameSite=None; Partitioned;

‫Javascript:

document.cookie="__Host-name=value; Secure; Path=/; SameSite=None; Partitioned;"

يرتبط ملف تعريف الارتباط الخارجي المقسَّم بالموقع الإلكتروني ذي المستوى الأعلى الذي تم ضبطه فيه في البداية، ولا يمكن الوصول إليه من أي مكان آخر. بهذه الطريقة، لا يمكن قراءة ملفات تعريف الارتباط التي تضبطها خدمة تابعة لجهة خارجية إلا في السياق المضمّن نفسه للموقع الإلكتروني من المستوى الأعلى الذي تم ضبطها فيه في البداية.

مخطّط بياني يوضّح أنّ موقعَين إلكترونيَين مختلفَين يتضمّنان جهة خارجية مشتركة لن يعودا يتشاركان ملفات تعريف الارتباط الخاصة بهذه الجهة الخارجية.
باستخدام ميزة "تقسيم ملفات تعريف الارتباط"، لا يمكن لخدمة تابعة لجهة خارجية تضبط ملف تعريف ارتباط عند تضمينها في موقع إلكتروني واحد من المستوى الأعلى الوصول إلى ملف تعريف الارتباط نفسه عند تضمين الخدمة في مواقع إلكترونية أخرى من المستوى الأعلى.

باستخدام ملفات تعريف الارتباط المقسَّمة، عندما يزور المستخدم الموقع الإلكتروني (أ) ويضبط المحتوى المضمّن من الموقع الإلكتروني (ج) ملف تعريف ارتباط يتضمّن السمة Partitioned، يتم حفظ ملف تعريف الارتباط في وعاء مقسَّم مخصّص فقط لملفات تعريف الارتباط التي يضبطها الموقع الإلكتروني (ج) عندما يكون مضمّنًا في الموقع الإلكتروني (أ). ولن يرسل المتصفّح ملف تعريف الارتباط هذا إلا عندما يكون الموقع الإلكتروني ذو المستوى الأعلى هو A.

عندما يزور المستخدم موقعًا إلكترونيًا جديدًا، مثل الموقع الإلكتروني B، لن يتلقّى إطار C المضمّن ملف تعريف الارتباط الذي تم ضبطه عند تضمين C في الموقع الإلكتروني A.

إذا زار المستخدم الموقع الإلكتروني C كموقع إلكتروني من المستوى الأعلى، لن يتم إرسال ملف تعريف الارتباط المقسَّم الذي ضبطه الموقع الإلكتروني C عندما كان مضمّنًا في الموقع الإلكتروني A في هذا الطلب أيضًا.

مخطّط بياني يوضّح أنّه لا تتم مشاركة ملفات تعريف الارتباط عند تضمين الجهة الخارجية نفسها في موقعَين إلكترونيَين مختلفَين.
من خلال تقسيم ملفات تعريف الارتباط، لا يمكن لخدمة تابعة لجهة خارجية تضبط ملف تعريف ارتباط عند تضمينها في موقع إلكتروني الوصول إلى ملف تعريف الارتباط نفسه حتى عندما يزور المستخدمون الخدمة كموقع إلكتروني من المستوى الأعلى.

حالات الاستخدام

على سبيل المثال، قد يريد الموقع الإلكتروني retail.example العمل مع خدمة تابعة لجهة خارجية support.chat.example لتضمين مربّع محادثة دعم على موقعه الإلكتروني. تعتمد العديد من خدمات المحادثة القابلة للتضمين اليوم على ملفات تعريف الارتباط لحفظ الحالة.

رسم بياني يعرض موقعًا إلكترونيًا يتضمّن تطبيقًا مصغّرًا مدمجًا للمحادثة
موقع إلكتروني من المستوى الأعلى retail.example يضمّ خدمة تابعة لجهة خارجية support.chat.example.

بدون إمكانية ضبط ملف تعريف ارتباط على مستوى المواقع الإلكترونية، ستحتاج support.chat.example إلى إيجاد طرق بديلة، وغالبًا ما تكون أكثر تعقيدًا، لتخزين الحالة. بدلاً من ذلك، يجب تضمينها في صفحة المستوى الأعلى التي تتضمّن مخاطر لأنّها تسمح لبرنامج نصي support.chat.example بالحصول على امتيازات أعلى على retail.example، مثل إمكانية الوصول إلى ملفات تعريف الارتباط الخاصة بالمصادقة.

توفّر CHIPS خيارًا أسهل لمواصلة استخدام ملفات تعريف الارتباط على مواقع إلكترونية مختلفة، بدون المخاطر المرتبطة بملفات تعريف الارتباط غير المقسَّمة.

تشمل أمثلة حالات استخدام CHIPS أي سيناريوهات تتطلّب فيها الموارد الفرعية على مستوى المواقع الإلكترونية مفهومًا للجلسة أو الحالة الثابتة التي يتم تحديد نطاقها حسب نشاط المستخدم على موقع إلكتروني واحد من المستوى الأعلى، مثل:

  • محادثات مضمّنة تابعة لجهات خارجية
  • تضمين خرائط تابعة لجهات خارجية
  • عمليات تضمين خدمات الدفع التابعة لجهات خارجية
  • موازنة الحمل في شبكة توصيل المحتوى (CDN) للموارد الفرعية
  • مزوّدو أنظمة إدارة المحتوى بلا واجهة مستخدم رسومية
  • نطاقات وضع الحماية لعرض محتوى المستخدمين غير الموثوق به (مثل googleusercontent.com وgithubusercontent.com)
  • شبكات توصيل المحتوى التابعة لجهات خارجية والتي تستخدم ملفات تعريف الارتباط لعرض المحتوى الذي يتم التحكّم في الوصول إليه من خلال حالة المصادقة على الموقع الإلكتروني الخاص بالطرف الأول (على سبيل المثال، صور الملف الشخصي على مواقع التواصل الاجتماعي المستضافة على شبكات توصيل المحتوى التابعة لجهات خارجية)
  • أُطر الواجهة الأمامية التي تعتمد على واجهات برمجة التطبيقات البعيدة التي تستخدم ملفات تعريف الارتباط في طلباتها
  • الإعلانات المضمّنة التي تحتاج إلى نطاق حالة لكل ناشر (على سبيل المثال، تسجيل الإعدادات المفضّلة للمستخدمين بشأن الإعلانات على هذا الموقع الإلكتروني)

سبب استخدام ميزة "ملفات تعريف الارتباط في الحالة المقسَّمة المنفصلة" نموذج التقسيم الذي يتطلّب الموافقة

عند حظر الوصول إلى ملفات تعريف الارتباط غير المقسَّمة التابعة لجهات خارجية، تم تجربة طريقتَين أخريَين للتقسيم.

أعلنت شركة Firefox أنّها ستقسّم جميع ملفات تعريف الارتباط التابعة لجهات خارجية تلقائيًا في وضع "الحماية المحسّنة من التتبّع" الصارم ووضع التصفّح الخاص، وبالتالي سيتم تقسيم جميع ملفات تعريف الارتباط على المواقع الإلكترونية المختلفة حسب الموقع الإلكتروني ذي المستوى الأعلى. ومع ذلك، يمكن أن يؤدي تقسيم ملفات تعريف الارتباط بدون موافقة الجهة الخارجية إلى حدوث أخطاء غير متوقّعة، لأنّ بعض الخدمات التابعة لجهات خارجية أنشأت خوادم تتوقّع ملف تعريف ارتباط تابعًا لجهة خارجية غير مقسَّم.

حاول Safari سابقًا تقسيم ملفات تعريف الارتباط استنادًا إلى قواعد تجريبية، ولكنّه اختار في النهاية حظرها بالكامل، مشيرًا إلى أنّ أحد الأسباب هو الالتباس الذي يواجهه المطوّرون. أعربت Safari مؤخرًا عن اهتمامها بنموذج يستند إلى الموافقة.

ما يميّز CHIPS عن عمليات التنفيذ الحالية لملفات تعريف الارتباط المقسّمة هو موافقة الجهة الخارجية. يجب ضبط ملفات تعريف الارتباط باستخدام سمة جديدة ليتم إرسالها في الطلبات الواردة من مواقع إلكترونية مختلفة مرة واحدة بعد إيقاف ملفات تعريف الارتباط التابعة لجهات خارجية (غير المقسّمة) نهائيًا.

مع أنّ ملفات تعريف الارتباط الخارجية لا تزال متوفّرة، تقدّم السمة Partitioned خيار الموافقة على نوع أكثر تقييدًا وأمانًا من سلوك ملفات تعريف الارتباط. ‫CHIPS هي خطوة مهمة لمساعدة الخدمات في الانتقال بسلاسة إلى مستقبل لا تتوفّر فيه ملفات تعريف الارتباط التابعة لجهات خارجية.

في الوقت الحالي، يتم ربط ملفات تعريف الارتباط باسم المضيف أو نطاق الموقع الإلكتروني الذي ضبطها، أي مفتاح المضيف.

على سبيل المثال، بالنسبة إلى ملفات تعريف الارتباط من https://support.chat.example، يكون مفتاح المضيف هو ("support.chat.example").

في CHIPS، سيتم استخدام مفتاحَين لملفات تعريف الارتباط التي يتم تفعيل تقسيمها، وهما مفتاح المضيف ومفتاح القسم.

مفتاح تقسيم ملف تعريف الارتباط هو الموقع الإلكتروني (المخطط والنطاق القابل للتسجيل) لعنوان URL ذي المستوى الأعلى الذي كان المتصفّح يتصفّحه في بداية الطلب إلى نقطة النهاية التي ضبطت ملف تعريف الارتباط.

في المثال السابق، حيث تم تضمين https://support.chat.example في https://retail.example، يكون عنوان URL ذو المستوى الأعلى هو https://retail.example.

مفتاح القسم في هذه الحالة هو ("https", "retail.example").

وبالمثل، مفتاح التقسيم للطلب هو موقع عنوان URL ذي المستوى الأعلى الذي يتصفّحه المتصفّح في بداية الطلب. يجب أن ترسل المتصفّحات ملف تعريف ارتباط يتضمّن السمة Partitioned في الطلبات التي تتضمّن مفتاح التقسيم نفسه الذي يتضمّنه ملف تعريف الارتباط.

في ما يلي شكل مفتاح ملف تعريف الارتباط في المثال السابق قبل وبعد استخدام CHIPS.

يتشارك الموقع الإلكتروني (أ) والموقع الإلكتروني المضمّن (ج) ملف تعريف ارتباط مُقسَّمًا. عندما لا يكون الموقع الإلكتروني C مضمّنًا، لا يمكنه الوصول إلى ملف تعريف الارتباط المقسَّم.
يتشارك الموقع الإلكتروني (أ) والموقع الإلكتروني (ج) المضمّن ملف تعريف ارتباط مُقسَّمًا. عندما لا يكون الموقع الإلكتروني C مضمّنًا، لا يمكنه الوصول إلى ملف تعريف الارتباط المقسَّم.

قبل CHIPS

key=("support.chat.example")

بعد CHIPS

key={("support.chat.example"),("https", "retail.example")}

تصميم الأمان

لتشجيع ممارسات الأمان الجيدة، لا يتم ضبط ملفات تعريف الارتباط وإرسالها إلا عبر بروتوكولات آمنة باستخدام CHIPS.

  • يجب ضبط ملفات تعريف الارتباط المقسَّمة على Secure.
  • يُنصح باستخدام البادئة __Host- عند ضبط ملفات تعريف الارتباط المقسَّمة لجعلها مرتبطة باسم المضيف (وليس النطاق القابل للتسجيل).

مثال:

Set-Cookie: __Host-example=34d8g; SameSite=None; Secure; Path=/; Partitioned;

بدائل لملفات تعريف الارتباط في الحالة المقسَّمة المنفصلة (CHIPS)

Storage Access API ومجموعات المواقع الإلكترونية المرتبطة (RWS) المرتبطة بها هما آليتان لمنصة الويب تتيحان الوصول المحدود إلى ملفات تعريف الارتباط على مواقع إلكترونية متعددة لأغراض محدّدة موجّهة للمستخدمين.

هذه بدائل لتقسيم CHIPS حيث يكون الوصول إلى ملفات تعريف الارتباط غير المقسّمة والمتاحة على مواقع إلكترونية متعددة مطلوبًا.

يمكنك الاستفادة من Storage Access API و"مجموعات المواقع الإلكترونية المرتبطة" في الحالات التي تحتاج فيها إلى توفير ملف تعريف الارتباط نفسه لخدمة مضمّنة في مواقع إلكترونية متعددة مرتبطة.

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

يعتمد تصميم "مجموعات المواقع الإلكترونية المرتبطة" على Storage Access API ولا يتكامل مع تقسيم CHIPS. إذا كان لديك حالة استخدام تعتمد على قسم ملفات تعريف ارتباط مشترَك على مستوى المواقع الإلكترونية ضمن RWS، يمكنك تقديم أمثلة وملاحظات على مشكلة GitHub.

عرض توضيحي

سيوضّح لك هذا العرض التوضيحي طريقة عمل ملفات تعريف الارتباط المقسّمة وكيفية فحصها في "أدوات مطوّري البرامج".

يضمّن الموقع الإلكتروني (أ) إطار iframe من الموقع الإلكتروني (ب) يستخدم JavaScript لضبط ملفَي تعريف ارتباط: ملف تعريف ارتباط مقسّم وآخر غير مقسّم. يعرض الموقع الإلكتروني (ب) جميع ملفات تعريف الارتباط التي يمكن الوصول إليها من هذا الموقع باستخدام document.cookie.

عند حظر ملفات تعريف الارتباط التابعة لجهات خارجية، لن يتمكّن الموقع الإلكتروني B من ضبط ملف تعريف الارتباط الذي يتضمّن السمة Partitioned والوصول إليه إلا في سياق المواقع الإلكترونية المختلفة.

عند السماح بملفات تعريف الارتباط التابعة لجهات خارجية، يمكن للموقع الإلكتروني B أيضًا ضبط ملف تعريف الارتباط غير المقسَّم والوصول إليه.

الموقع الإلكتروني (أ) والموقع الإلكتروني (ب)
اليمين: تم حظر ملفات تعريف الارتباط التابعة لجهات خارجية. على اليسار: يُسمح بملفات تعريف الارتباط التابعة لجهات خارجية.

المتطلبات الأساسية

  1. الإصدار 118 من Chrome أو إصدار أحدث
  2. انتقِل إلى chrome://flags/#test-third-party-cookie-phaseout وفعِّل هذا الإعداد

استخدام "أدوات مطوّري البرامج" لفحص ملفات تعريف الارتباط المقسَّمة

  1. انتقِل إلى https://chips-site-a.glitch.me.
  2. اضغط على Control+Shift+J (أو Command+Option+J على جهاز Mac) لفتح "أدوات مطوّري البرامج".
  3. انقر على علامة التبويب التطبيق.
  4. انتقِل إلى التطبيق > مساحة التخزين > ملفات تعريف الارتباط.
  5. انقر على https://chips-site-b.glitch.me.

ستعرض "أدوات مطوّري Chrome" جميع ملفات تعريف الارتباط من المصدر المحدّد.

ملفات تعريف الارتباط من الموقع الإلكتروني B في علامة التبويب "التطبيق" ضمن "أدوات مطوّري البرامج"

يمكن للموقع الإلكتروني (ب) ضبط ملف تعريف الارتباط المقسَّم في سياق مواقع إلكترونية متعددة فقط، وسيتم حظر ملف تعريف الارتباط غير المقسَّم:

  • من المفترض أن يظهر __Host-partitioned-cookie مع مفتاح التقسيم للموقع الإلكتروني ذي المستوى الأعلى https://chips-site-a.glitch.me.
مفتاح التقسيم لملف تعريف الارتباط المقسّم __Host.
  1. انقر على الانتقال إلى الموقع الإلكتروني B.
  2. في "أدوات مطوّلي البرامج"، انتقِل إلى التطبيق > مساحة التخزين > ملفات تعريف الارتباط.
  3. انقر على https://chips-site-b.glitch.me.
الموقع الإلكتروني (ب)
على المستوى الأعلى، يمكن للموقع الإلكتروني B الاطّلاع على جميع ملفات تعريف الارتباط، سواء كانت مقسَّمة أو غير مقسَّمة

في هذا السيناريو، بما أنّك تتصفّح الموقع الإلكتروني "ب" في سياق المستوى الأعلى، يمكنه ضبط ملفَي تعريف الارتباط والوصول إليهما:

  • يحتوي unpartitioned-cookie على مفتاح قسم فارغ.
  • يحتوي ملف تعريف الارتباط __Host-partitioned-cookie على مفتاح التقسيم https://chips-site-b.glitch.me.
ملفات تعريف الارتباط من الموقع الإلكتروني B في علامة التبويب "التطبيق" ضمن "أدوات مطوّري البرامج" عند الانتقال إلى الموقع الإلكتروني B كموقع إلكتروني من المستوى الأعلى ‫__Host-partitioned-cookie يتضمّن مفتاح التقسيم https://chips-site-b.glitch.me.

إذا انتقلت مجددًا إلى الموقع الإلكتروني (أ)، سيتم تخزين unpartitioned-cookie الآن في المتصفّح، ولكن لن يكون بإمكانك الوصول إليه من الموقع الإلكتروني (أ).

  1. انقر على الانتقال إلى الموقع الإلكتروني أ (Go to Site A).
  2. انقر على علامة التبويب الشبكة.
  3. انقر على https://chips-site-b.glitch.me.
  4. انقر على علامة التبويب ملفّات تعريف الارتباط (Cookies).

أثناء التصفّح على الموقع الإلكتروني (أ)، من المفترض أن يظهر لك __Host-partitioned-cookie مع مفتاح التقسيم الخاص بالموقع الإلكتروني في المستوى الأعلى https://chips-site-a.glitch.me.

علامة التبويب "الشبكة" تعرض ملفات تعريف الارتباط من إطار iframe الخاص بالموقع الإلكتروني B التي يمكن الوصول إليها عند تضمينها في الموقع الإلكتروني A.

إذا وضعت علامة في المربّع عرض طلبات ملفات تعريف الارتباط التي تمت فلترتها، ستعرض "أدوات مطوّري البرامج" أنّه تم حظر ملف تعريف الارتباط غير المقسَّم، وسيتم تمييزه باللون الأصفر مع تلميح أداة: "تم حظر ملف تعريف الارتباط هذا طبقًا للإعدادات المفضّلة للمستخدم".

علامة التبويب "الشبكة" التي تعرض ملفات تعريف الارتباط المحظورة من الإطار iframe الخاص بالموقع الإلكتروني B

في التطبيق > مساحة التخزين > ملفات تعريف الارتباط، سيؤدي النقر على https://chips-site-b.glitch.me إلى ظهور ما يلي:

  • unpartitioned-cookie باستخدام مفتاح التقسيم الفارغ.
  • ملف تعريف الارتباط __Host-partitioned-cookie مع مفتاح التقسيم https://chips-site-a.glitch.me
ملفات تعريف الارتباط من الموقع الإلكتروني B في علامة التبويب "التطبيق" ضمن "أدوات مطوّري البرامج" يحتوي ملف تعريف الارتباط __Host-partitioned-cookie على مفتاح التقسيم https://chips-site-a.glitch.me. يتم عرض unpartitioned-cookie، ولكن لا يمكن الوصول إليه من خلال إطار iframe الخاص بالموقع الإلكتروني B عندما يكون مضمّنًا في الموقع الإلكتروني A.

محو ملفات تعريف الارتباط

لإعادة ضبط العرض التوضيحي، امحُ جميع ملفات تعريف الارتباط الخاصة بالموقع الإلكتروني:

  • اضغط على Control+Shift+J (أو Command+Option+J على جهاز Mac) لفتح "أدوات مطوّري البرامج".
  • انقر على علامة التبويب التطبيق.
  • انتقِل إلى التطبيق > مساحة التخزين > ملفات تعريف الارتباط.
  • انقر بزر الماوس الأيمن على https://chips-site-b.glitch.me.
  • انقر على محو.

الموارد