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

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

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

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

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

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

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

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

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

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

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

الخطوات

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

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

يفعِّل FirstPartySets عدد اللقطات في الثانية في Chrome.

FirstPartySets

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

StorageAccessAPI

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

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

StorageAccessAPIForOriginExtension

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

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

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

يمكنك إنشاء كائن 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

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

التأكّد من حظر ملفات تعريف الارتباط التابعة لجهات خارجية

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

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

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

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

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

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

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

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

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