تعليمات اختبار مجموعات نطاقات الطرف الأول

أصبح الإصدار الأخير من مجموعات نطاقات الطرف الأول جاهزًا لاختبار ميزة علامات الميزات للمطوّرين من خلال الإصدار 108 من Chrome. نعمل جاهدين على تطوير مجموعات نطاقات الطرف الأول بغرض الانتقال إلى خدمة الشحن، لذلك سننظر في الملاحظات على هذه المرحلة من اختبار المطوّرين حتى إطلاق متصفّح Chrome 111 في بداية شهر آذار (مارس) 2023 (في 7 آذار/مارس 2023).

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

يستخدم الاقتراح المعدَّل واجهتَي برمجة تطبيقات (واجهة برمجة التطبيقات Storage Access API وواجهة برمجة تطبيقات جديدة اسمها مبدئيًا requestStorageAccessForOrigin) لتزويد المواقع الإلكترونية بطريقة نشطة لطلب الوصول من مواقع إلكترونية متعددة إلى ملفات تعريف الارتباط ضمن إحدى "مجموعات نطاقات الطرف الأول". من المفترض أن تسمح لك التعليمات أدناه باختبار المجموعات التي قد تريد إنشاءها لمواقعك الإلكترونية والتحقق من صحتها، والنقاط المناسبة لاستدعاء واجهتَي برمجة التطبيقات المختلفتَين.

نظرة عامة حول "مجموعات نطاقات الطرف الأول"

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

على مستوى عالٍ، مجموعة نطاقات الطرف الأول هي مجموعة من النطاقات التي يكون لها "مجموعة أساسية" واحدة ومن المحتمل أن تضم عدة "أعضاء مجموعة". بإمكان مؤلفي الموقع الإلكتروني فقط إرسال نطاقاتهم إلى مجموعة، وسيُطلب منهم توضيح العلاقة بين كل "عضو في المجموعة" و "تعيين المجموعة الأساسية" له. يمكن لمجموعة الأعضاء تضمين نطاق من أنواع النطاقات المختلفة مع مجموعات فرعية استنادًا إلى حالات الاستخدام.

لتسهيل معالجة المتصفِّح لكل مجموعة فرعية وفقًا لآثار الخصوصية لكل مجموعة فرعية، نقترح الاستفادة من Storage Access API (SAA) وrequestStorageAccessForOrigin لتفعيل الوصول إلى ملفات تعريف الارتباط ضمن إطار عمل في الثانية (FPS).

من خلال SAA، قد تطلب المواقع الإلكترونية بشكل نشط الوصول إلى ملفات تعريف الارتباط على مواقع إلكترونية متعددة. سيمنح Chrome الطلب تلقائيًا إذا كان الموقع الإلكتروني الذي قدّم الطلب والموقع الإلكتروني ذي المستوى الأعلى في عدد اللقطات في الثانية نفسه. يُرجى الاطّلاع على مستندات واجهة برمجة التطبيقات Storage Access API (SAA) للحصول على معلومات عن كيفية معالجة المتصفّحات الأخرى لطلبات SAA.

تتطلّب خدمة SAA حاليًا أن يحصل المستند على إذن التفعيل من المستخدِم قبل طلب طرق واجهة برمجة التطبيقات.

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

تحديد خيار الإرسال

ستكون قائمة FPS الأساسية عبارة عن قائمة قابلة للعرض بشكل علني بتنسيق ملف JSON موجود في مستودع FPS GitHub جديد، وسيكون بمثابة مصدر المعلومة لجميع المجموعات. وسيستخدم Chrome هذا الملف لتطبيقه على سلوكه.

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

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

كيفية الاختبار محليًا

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

لاختبار عدد اللقطات في الثانية على الجهاز، استخدِم الإصدار 108 من Chrome أو الإصدارات الأحدث التي يتم تشغيلها من سطر الأوامر.

لمعاينة الميزات القادمة في متصفّح Chrome قبل إطلاقها، يُرجى تنزيل الإصدار التجريبي أو إصدار Canary من Chrome.

مثال

google-chrome \
--enable-features="FirstPartySets,StorageAccessAPI,StorageAccessAPIForOriginExtension,PageInfoCookiesSubpage,PrivacySandboxFirstPartySetsUI" \
--use-first-party-set="{\"primary\": \"https://first-party-sets.glitch.me\", \"associatedSites\": [\"https://fps-member-1.glitch.me\"]}" \

تعرّف على مزيد من المعلومات عن كيفية تشغيل Chromium مع الإبلاغات.

الخطوات

لتفعيل ميزة FPS محليًا، عليك استخدام خيار --enable-features في Chrome مع قائمة تتضمّن علامات مفصولة بفواصل من العلامات الموضّحة في هذا القسم وتعريف مجموعة من المواقع الإلكترونية ذات الصلة على أنّها كائن JSON يجب تمريره إلى --use-first-party-set.

تفعيل عدد اللقطات في الثانية

يتيح FirstPartySets استخدام عدد اللقطات في الثانية في Chrome.

FirstPartySets

تفعيل واجهة برمجة التطبيقات Storage Access API

StorageAccessAPI

تفعِّل هذه السياسة Storage Access API (SAA) في Chrome التي تسمح لإطارات iframe المضمّنة باستخدام requestStorageAccess() لطلب الوصول إلى ملفات تعريف الارتباط في سياق مواقع إلكترونية متعددة، حتى في حال حظر ملفات تعريف الارتباط التابعة لجهات خارجية في المتصفِّح.

يُرجى العِلم أنّه عند طلب البيانات، يجب استخدام إيماءة مستخدم لحل المشكلة "requestStorageAccess()". قد تفرض الإصدارات المستقبلية من Chrome مجموعات مختلفة من المتطلبات، لأنّ مواصفات SAA لا تزال قيد التطوير. يمكنك الرجوع هنا للاطّلاع على قائمة بالتحسينات المخططة لتنفيذ SAA في Chrome.

StorageAccessAPIForOriginExtension

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

تعريف مجموعة محليًا

مجموعة نطاقات الطرف الأول هي مجموعة من النطاقات التي يكون لها "مجموعة أساسية" واحدة ومن المحتمل أن تضم عدة "أعضاء مجموعة". يمكن لمجموعة الأعضاء تضمين نطاق من أنواع النطاقات المختلفة مع مجموعات فرعية استنادًا إلى حالات الاستخدام.

يمكنك إنشاء كائن JSON يحتوي على عناوين URL التي تشكّل جزءًا من مجموعة وتمريره إلى --use-first-party-set.

في المثال أدناه، يسرد primary النطاق الأساسي، بينما يدرج associatedSites النطاقات التي تستوفي متطلبات المجموعة الفرعية المرتبطة.

{
     "primary": "https://primary.com",
    "associatedSites": ["https://associate1.com", "https://associate2.com", "https://associate3.com"]
}

مثال:

--use-first-party-set="{\"primary\": \"https://first-party-sets.glitch.me\", \"associatedSites\": [\"https://fps-member-1.glitch.me\"]}"

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

تفعيل واجهة مستخدم FPS

PageInfoCookiesSubpage

لتفعيل عرض عدد اللقطات في الثانية في قسم معلومات الصفحة الذي يمكن الوصول إليه من شريط عنوان URL.

PrivacySandboxFirstPartySetsUI

يؤدي هذا الإعداد إلى تفعيل خيار "السماح للمواقع الإلكترونية ذات الصلة بالاطّلاع على نشاطك في المجموعة" في إعدادات Chrome، ضِمن "الخصوصية والأمان" ← ملفات تعريف الارتباط وبيانات الموقع الإلكتروني الأخرى (chrome://settings/cookies) واجهة مستخدم FPS.

التحقُّق من حظر ملفات تعريف الارتباط التابعة لجهات خارجية

  1. في إعدادات Chrome، انتقِل إلى "الخصوصية والأمان" ← ملفات تعريف الارتباط وبيانات الموقع الإلكتروني الأخرى أو chrome://settings/cookies.
  2. ضمن "الإعدادات العامة"، تأكّد من تفعيل خيار "حظر ملفات تعريف الارتباط التابعة لجهات خارجية".
  3. تأكّد من تفعيل الخيار الفرعي "السماح للمواقع الإلكترونية ذات الصلة بالاطّلاع على نشاطك في المجموعة".

الاعتبارات الأمنية

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

التحسينات المخطط لها

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

يمكنك الاطّلاع على قائمة التحسينات المُخطَّط لها لتنفيذ Chrome SAA.

وتجدُر الإشارة إلى أنّ Chrome لا يرسل سوى ملفات تعريف الارتباط التي تم وضع علامة SameSite=None في السياقات المضمَّنة على مواقع إلكترونية متعددة، حيث تكون فيها هذه الواجهة ذات صلة بـ Storage Access API. ومع ذلك، لا يمكن وضع افتراضات حول أماكن استخدام ملف تعريف الارتباط إلى أن تُنهي جميع المتصفحات الوصول الافتراضي إلى ملفات تعريف الارتباط هذه. من غير الآمن افتراض أنّه لن يتم السماح بالوصول إلا من خلال لقطة في الثانية، ويجب أن تواصل المواقع الإلكترونية استخدام أفضل ممارسات الأمان العادية.

التفاعل ومشاركة الملاحظات

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