السماح لمطوّري البرامج بتفعيل ملفات تعريف الارتباط في "مقسم" تخزين، مع وعاء منفصل لملفات تعريف الارتباط لكل موقع إلكتروني من المستوى الأعلى.
حالة التنفيذ
- متوافق بشكل تلقائي في Chrome 114 والإصدارات الأحدث
- تتوفّر الآن مرحلة التجربة والتقييم على إصدارات Chrome 100 وChrome 116.
- اطّلِع على الرغبة في إجراء التجربة ونوايا الشحن.
ما هي ملفات تعريف الارتباط في الحالة المقسَّمة المنفصلة (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
لتضمين مربع دردشة دعم على موقعه. يعتمد العديد من خدمات المحادثة القابلة للتضمين حاليًا على ملفات تعريف الارتباط لحفظ الحالة.
في حال عدم القدرة على ضبط ملف تعريف ارتباط على مواقع إلكترونية متعددة، سيكون على 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
في سياق مواقع إلكترونية متعددة.
عندما تكون ملفات تعريف الارتباط التابعة لجهات خارجية مسموحًا بها، يمكن للموقع الإلكتروني "ب" أيضًا ضبط ملف تعريف الارتباط غير المقسّم والوصول إليه.
المتطلبات الأساسية
- الإصدار 118 من Chrome أو إصدار أحدث
- الانتقال إلى
chrome://flags/#test-third-party-cookie-phaseout
وتفعيل هذا الخيار
استخدام أدوات مطوّري البرامج لفحص ملفات تعريف الارتباط المقسَّمة
- الانتقال إلى https://chips-site-a.glitch.me
- اضغط على
Control+Shift+J
(أوCommand+Option+J
على جهاز Mac) لفتح "أدوات مطوري البرامج". - انقر على علامة التبويب التطبيق.
- انتقل إلى التطبيق > التخزين > ملفات تعريف الارتباط:
- انقر على
https://chips-site-b.glitch.me
.
ستعرض "أدوات مطوّري البرامج" جميع ملفات تعريف الارتباط من المصدر المحدَّد.
يمكن للموقع الإلكتروني "ب" ضبط ملفّ تعريف الارتباط المقسّم في سياق مواقع إلكترونية مختلفة فقط، وسيتم حظر ملفّ تعريف الارتباط غير المقسّم:
- من المفترض أن يظهر لك
__Host-partitioned-cookie
مع مفتاح التقسيم للموقع الإلكتروني من المستوى الأعلىhttps://chips-site-a.glitch.me
.
- انقر على الانتقال إلى الموقع الإلكتروني "ب".
- في أدوات مطوري البرامج، انتقل إلى التطبيق > التخزين > ملفات تعريف الارتباط:
- انقر على
https://chips-site-b.glitch.me
.
في هذا السيناريو، ولأنّك تتصفّح الموقع الإلكتروني "ب" في سياق المستوى الأعلى، سيكون بإمكانه ضبط ملفَّي تعريف الارتباط والوصول إليهما:
- لدى
unpartitioned-cookie
مفتاح تقسيم فارغ. - يتضمن ملف تعريف الارتباط
__Host-partitioned-cookie
مفتاح التقسيمhttps://chips-site-b.glitch.me
.
في حال الرجوع إلى الموقع الإلكتروني "أ"، سيتم تخزين unpartitioned-cookie
في المتصفح الآن، ولكن لن يكون بإمكانك الوصول إليه من الموقع "أ".
- انقر على الانتقال إلى الموقع الإلكتروني "أ".
- انقر على علامة التبويب الشبكة.
- انقر على
https://chips-site-b.glitch.me
. - انقر على علامة التبويب ملفّات تعريف الارتباط (Cookies).
أثناء تصفُّح الموقع الإلكتروني "أ"، من المفترض أن يظهر لك __Host-partitioned-cookie
مع مفتاح تقسيم الموقع الإلكتروني ذي المستوى الأعلى https://chips-site-a.glitch.me
.
إذا وضعت علامة في المربّع بجانب عرض طلبات ملفات تعريف الارتباط التي تمت فلترتها، ستعرِض "أدوات مطوّري البرامج" أنّ ملف تعريف الارتباط غير المقسّم محظور، وسيكون مميزًا باللون الأصفر مع تلميح: "تم حظر ملف تعريف الارتباط هذا بسبب إعدادات المستخدم المفضّلة".
في التطبيق > التخزين > ملفات تعريف الارتباط انقر على https://chips-site-b.glitch.me
ستعرض:
unpartitioned-cookie
باستخدام مفتاح التقسيم الفارغ.- ملف تعريف ارتباط
__Host-partitioned-cookie
الذي يتضمّن مفتاح التقسيمhttps://chips-site-a.glitch.me
محو ملفات تعريف الارتباط
لإعادة ضبط العرض التوضيحي، عليك محو جميع ملفات تعريف الارتباط للموقع الإلكتروني:
- اضغط على
Control+Shift+J
(أوCommand+Option+J
على جهاز Mac) لفتح "أدوات مطوري البرامج". - انقر على علامة التبويب التطبيق.
- انتقل إلى التطبيق > التخزين > ملفات تعريف الارتباط:
- انقر بزر الماوس الأيمن على
https://chips-site-b.glitch.me
. - انقر على محو.
الموارد
- GitHub: اطّلِع على المشرح واطرح الأسئلة وتابِع المناقشة.
- فريق دعم المطوّرين: يمكنك طرح الأسئلة والانضمام إلى المناقشات حول مستودع دعم المطوّرين ضمن "مبادرة حماية الخصوصية".