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

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

حالة التنفيذ

دعم المتصفح

  • Chrome: 114
  • الحافة: 114.
  • معاينة التكنولوجيا في Firefox: مدعومة
  • Safari: غير متاح.

المصدر

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

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

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

وبدأت المتصفّحات في العمل على الإيقاف التدريجي لملفات تعريف الارتباط التابعة لجهات خارجية غير المقسَّمة، لذا ستكون CHIPS وStorage Access API وRelated Website Sets هي الطريقة الوحيدة لقراءة ملفات تعريف الارتباط وكتابتها من سياقات مواقع إلكترونية متعددة، مثل إطارات iframe، عند حظر ملفات تعريف الارتباط التابعة لجهات خارجية.

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

تقدّم ملفات تعريف الارتباط في ملفات تعريف الارتباط (CHIPS) سمة جديدة لملفات تعريف الارتباط، Partitioned، لإتاحة ملفات تعريف الارتباط على مواقع إلكترونية متعددة والتي يتم تقسيمها حسب سياق المستوى الأعلى.

عنوان Set-Cookie:

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

JavaScript:

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

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

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

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

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

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

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

حاول 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 وبعده.

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

قبل ملفات تعريف الارتباط في الحالة المقسَّمة المنفصلة (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 ومجموعات المواقع الإلكترونية المرتبطة عندما يكون لديك ملف تعريف ارتباط واحد ليكون متاحًا لخدمة مُضمّنة في عدة مواقع إلكترونية ذات صلة.

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

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

عرض توضيحي

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

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

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

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

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

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

  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.

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

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

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

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

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

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

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

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

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

علامة تبويب "الشبكة" التي تعرض ملفات تعريف الارتباط من إطار iframe للموقع الإلكتروني "ب" والتي يمكن الوصول إليها عندما تكون مضمّنة في الموقع "أ"

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

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

في التطبيق > التخزين > ملفات تعريف الارتباط انقر على https://chips-site-b.glitch.me ستعرض:

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

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

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

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

الموارد