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

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

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

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

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

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

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

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

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

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

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

ضبط عملية الإرسال

ستكون قائمة FPS الأساسية متاحة للجميع بتنسيق ملف JSON في مستودع GitHub الجديد لبيانات FPS، والذي سيشكّل مصدر المعلومات الموثوقة لجميع المجموعات. سيستخدم 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 API

StorageAccessAPI

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

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

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 والخضوع لمعايير التحقّق.

تفعيل واجهة المستخدم الخاصة بعدد اللقطات في الثانية

PageInfoCookiesSubpage

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

PrivacySandboxFirstPartySetsUI

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

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

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

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

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

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

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

اطّلِع على قائمة التحسينات المخطّط لها على تطبيق Chrome لاتفاقية الخدمات الإعلانية.

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

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

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