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

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

حالة التنفيذ

التوافق مع المتصفح

  • 114
  • 114
  • x
  • x

المصدر

ما هي CHIPS؟

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

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

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

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

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

عنوان ملف تعريف الارتباط:

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

JavaScript:

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

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

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

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

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

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

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

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

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

سبب استخدام 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 وبعدها.

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

قبل الشرائح

key=("support.chat.example")

بعد الشرائح

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

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

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

عرض توضيحي

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

يتضمّن الموقع "أ" إطار 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".
  • انقر على محو.

المراجِع