ما معنى "تقليل معلومات وكيل المستخدم"؟

يقلّل تقليل المعلومات في سلسلة وكيل المستخدم من المعلومات التعريفية التي تتم مشاركتها في سلسلة وكيل المستخدم، والتي يمكن استخدامها في إنشاء بصمات رقمية غير نشطة. بعد طرح هذه التغييرات لتصبح متاحة للجميع، أصبح لدى جميع طلبات الموارد عنوان User-Agent مخفَّض. ونتيجةً لذلك، تم تقليل القيم المعروضة من بعض واجهات Navigator، بما في ذلك: navigator.userAgent وnavigator.appVersion وnavigator.platform.

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

حقول معلومات الوكيل المستخدم (UA-CH)

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

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

لماذا نحتاج إلى إصدارات مخفَّضة من UA وUA-CH؟

في السابق، كانت سلسلة User-Agent تبثّ سلسلة كبيرة من البيانات حول متصفّح المستخدم ونظام التشغيل والإصدار مع كل طلب HTTP. كانت هذه الطريقة غير مناسبة لسببَين:

  • ويمكن أن تؤدي دقة التفاصيل ووفرتها إلى تحديد هوية المستخدم.
  • قد يؤدي توفّر هذه المعلومات تلقائيًا إلى تتبُّع خفي.

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

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

بالإضافة إلى ذلك، أصبحت السلسلة User-Agent أطول وأكثر تعقيدًا بمرور الوقت، ما أدّى إلى حدوث أخطاء في تحليل السلسلة. تقدّم UA-CH بيانات منظَّمة وموثوقة يسهل تفسيرها. لن يتوقّف الرمز الحالي الذي يحلّل سلسلة UA عن العمل (مع أنّه سيعرض بيانات أقل)، وسيكون عليك الانتقال إلى UA-CH إذا كان موقعك الإلكتروني يحتاج إلى معلومات محدّدة عن العميل.

كيف يعمل الإصدار المخفَّض من Universal Analytics وUniversal Analytics 360؟

في ما يلي مثال موجز على طريقة عمل سلسلة وكيل المستخدم المخفَّضة وUA-CH. للاطّلاع على مثال أكثر تفصيلاً، راجِع مقالة تحسين خصوصية المستخدم وتجربة المطوّرين باستخدام تلميحات عميل User-Agent.

يفتح المستخدم المتصفّح ويكتب example.com في شريط العناوين:

  1. يرسل المتصفّح طلبًا لتحميل صفحة الويب.

    1. يتضمّن المتصفّح العنوان User-Agent مع سلسلة User-Agent المخفَّضة. على سبيل المثال: User-Agent: Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.0.0 Mobile Safari/537.36
    2. يتضمّن المتصفّح المعلومات نفسها في عناوين User-Agent Client Hint التلقائية. على سبيل المثال:

      Sec-CH-UA: "Chrome"; v="98"
      Sec-CH-UA-Mobile: ?1
      Sec-CH-UA-Platform: "Android"
      
  2. يمكن للخادم أن يطلب من المتصفّح إرسال تلميحات إضافية خاصة بالعميل، مثل طراز الجهاز، باستخدام عنوان الاستجابة Accept-CH. على سبيل المثال: Accept-CH: Sec-CH-UA, Sec-CH-UA-Mobile, Sec-CH-UA-Platform, Sec-CH-UA-Model

  3. يطبّق المتصفّح السياسات وإعدادات المستخدم لتحديد البيانات المسموح بإرجاعها إلى الخادم في عناوين الطلبات اللاحقة. على سبيل المثال:

    Sec-CH-UA: "Chrome"; v="93"
    Sec-CH-UA-Mobile: ?1
    Sec-CH-UA-Platform: "Android"
    Sec-CH-UA-Model: "Pixel 2"
    

Critical Client Hints

إذا كنت بحاجة إلى مجموعة محدّدة من تلميحات العميل في طلبك الأوّلي، يمكنك استخدام عنوان الاستجابة Critical-CH. يجب أن تكون قيم Critical-CH مجموعة فرعية من القيم التي يطلبها Accept-CH.

على سبيل المثال، قد يتضمّن الطلب الأوّلي طلبًا للحصول على Device-Memory وViewport-Width، حيث يُعدّ Device-Memory أمرًا بالغ الأهمية.

GET / HTTP/1.1
Host: example.com

HTTP/1.1 200 OK
Content-Type: text/html
Accept-CH: Device-Memory, Viewport-Width
Vary: Device-Memory, Viewport-Width
Critical-CH: Device-Memory

إذا كان المتصفّح يحتاج إلى تلميح مهم (Critical-CH) لعرض صفحة الويب بشكل صحيح، يمكن للخادم طلب هذه المعلومات الإضافية باستخدام العنوان Accept-CH. بعد ذلك، يمكن للمتصفّح إرسال طلب جديد للصفحة، بما في ذلك التلميح المهم.

باختصار، يطلب Accept-CH جميع القيم التي تريدها للصفحة، بينما يطلب Critical-CH فقط مجموعة القيم الفرعية التي يجب توفّرها عند التحميل لتحميل الصفحة بشكل صحيح. يمكنك الاطّلاع على مواصفات موثوقية تلميحات العميل للحصول على مزيد من المعلومات.

رصد الأجهزة اللوحية باستخدام واجهة UA-CH API

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

ومع ذلك، فإنّ المعلومات التي يقدّمها المتصفّح لكلّ من سلسلة User-Agent وحقول User-Agent Client Hints تأتي من المصدر نفسه، لذا من المفترض أن تعمل أشكال المنطق نفسها.

على سبيل المثال، إذا تم وضع علامة في هذا المربّع في سلسلة UA:

  • نمط الهاتف: 'Android' + 'Chrome/[.0-9]* Mobile'
  • نمط الجهاز اللوحي: 'Android' + 'Chrome/[.0-9]* (?!Mobile)'

قد يتم وضع علامة في واجهة رؤوس UA-CH التلقائية المطابقة:

  • نمط الهاتف: Sec-CH-UA-Platform: "Android"، Sec-CH-UA-Mobile: ?1
  • نمط الجهاز اللوحي: Sec-CH-UA-Platform: "Android"، Sec-CH-UA-Mobile: ?0

أو واجهة JavaScript المكافئة:

  • نمط الهاتف: navigator.userAgentData.platform === 'Android' && navigator.userAgentData.mobile === true
  • نمط الجهاز اللوحي: navigator.userAgentData.platform === 'Android' && navigator.userAgentData.mobile === false

بالنسبة إلى حالات الاستخدام الخاصة بالأجهزة، يمكن طلب اسم طراز الجهاز من خلال تلميح Sec-CH-UA-Model ذي إنتروبيا عالية.

كيف يمكنني استخدام ميزة "تقليل استخدام وحدة المعالجة المركزية" واختبارها؟

للبدء، راجِع رمز موقعك الإلكتروني للعثور على أمثلة على استخدام سلسلة User-Agent. إذا كان موقعك الإلكتروني يعتمد على تحليل سلسلة User-Agent لقراءة طراز الجهاز أو إصدار النظام الأساسي أو إصدار المتصفّح الكامل، عليك تنفيذ واجهة برمجة التطبيقات UA-CH.

بعد التحديث إلى واجهة UA-CH API، عليك إجراء اختبار للتأكّد من أنّك تتلقّى البيانات المتوقّعة من User-Agent. هناك ثلاث طرق للاختبار، وكلّ منها يزداد تعقيدًا.

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

اختبار السلاسل المخصّصة على الجهاز

إذا أردت اختبار موقعك الإلكتروني باستخدام سلاسل User-Agent مخصّصة لمحاكاة أجهزة مختلفة، شغِّل Chrome باستخدام علامة سطر الأوامر --user-agent="Custom string here". يمكنك الاطّلاع على مزيد من المعلومات حول علامات سطر الأوامر هنا.

بدلاً من ذلك، استخدِم محاكي الأجهزة في "أدوات مطوّري البرامج في Chrome".

تحويل السلسلة في رمز موقعك الإلكتروني

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

توافق Client Hints وCritical Hints

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

ومع ذلك، قد تحتاج أحيانًا إلى استرداد معلومات مهمة لعرض موقعك الإلكتروني.

تحسين التلميحات المهمة

تُعد عملية تأكيد الاتصال عبر بروتوكول TLS الخطوة الأولى لإنشاء اتصال آمن بين المتصفّح وخادم الويب. بدون أي تدخل، تم تصميم عنوان الاستجابة Critical-CH لإخبار المتصفح بإعادة محاولة الطلب على الفور إذا تم إرسال الطلب الأول بدون تلميح مهم.

مخطّط تسلسلي لتعديلات البرامج مع تلميحات مهمة
عندما يطلب الخادم تلميحًا مهمًا، سيعيد العميل محاولة إرسال الطلب الأول لصفحة الويب مع التلميح المهم. في هذا المثال، يتم طلب التلميح الخاص بـ Sec-CH-UA-Model مرّتين: مرّة كتلميح للعميل مع Accept-CH ومرّة أخرى كتلميح مهم مع Critical-CH.

لتحسين التلميحات المهمة (عنوان Critical-CH)، عليك اعتراض عملية المصافحة هذه وتقديم نموذج لتلميحات العميل. قد تكون هذه الخطوات معقّدة وتتطلّب معرفة متقدّمة.

إنّ إطارات HTTP/2 وHTTP/3، بالإضافة إلى إضافة ALPS لبروتوكول TLS، هي تحسين على مستوى الاتصال يهدف إلى توفير إعدادات Client Hint المفضّلة للخادم في الوقت المناسب لتلبية طلب HTTP الأول.ACCEPT_CH تتطلّب هذه الإعدادات ضبطًا معقّدًا، وننصح باستخدامها فقط للمعلومات المهمة جدًا.

تساعدك BoringSSL (وهي نسخة معدَّلة من OpenSSL) في استخدام الميزات التجريبية من Google في Chromium. في الوقت الحالي، لا يتم تنفيذ ALPS إلا في BoringSSL.

إذا كنت بحاجة إلى استخدام تلميحات مهمة، يمكنك الرجوع إلى دليلنا حول موثوقية التلميحات المهمة وتحسينها.

الأسئلة الشائعة

ما هي المدة التي سيتم خلالها إرسال التلميحات المحدّدة من خلال العنوان Accept-CH؟

سيتم إرسال التلميحات المحدّدة من خلال العنوان Accept-CH طوال مدة جلسة المتصفّح أو إلى أن يتم تحديد مجموعة مختلفة من التلميحات.

هل تعمل ميزة UA-CH مع HTTP/2 وHTTP/3؟

تعمل ميزة UA-CH مع اتصالات HTTP/2 وHTTP/3.

هل تتطلّب النطاقات الفرعية (وCNAME) صفحة من المستوى الأعلى Permissions-Policy للوصول إلى UA-CH ذات الإنتروبيا العالية؟

يتم حظر UA-CH العالي الإنتروبيا في عناوين الطلبات على الطلبات الواردة من مصادر متعددة، بغض النظر عن كيفية تحديد هذا المصدر على مستوى نظام أسماء النطاقات. يجب أن تتم إدارة التفويض من خلال Permissions-Policy لأي مورد فرعي من مصادر متعددة أو الحصول عليه من خلال JavaScript الذي يتم تنفيذه في سياق المصادر المتعددة.

كيف يؤثّر تقليل معلومات الوكيل المستخدم في رصد البرامج الآلية؟

لا يؤثّر التغيير الذي أجراه Chrome على سلسلة وكيل المستخدم بشكل مباشر في السلسلة التي يختار الروبوت إرسالها.

قد تختار برامج التتبّع تحديث السلاسل الخاصة بها لتعكس المعلومات المخفَّضة التي يرسلها Chrome، ولكن هذا يعود إلى قرارها بشأن التنفيذ. سيظل Chrome يرسل تنسيق User-Agent نفسه، وسيظل بإمكان برامج التتبّع إضافة معرّفها الخاص إلى نهاية سلسلة User-Agent في Chrome.

إذا كانت لديك أي مخاوف بشأن برامج روبوت معيّنة، ننصحك بالتواصل مباشرةً مع مالكيها لمعرفة ما إذا كانت لديهم أي خطط لتغيير سلسلة User-Agent.

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

تعرَّف على مزيد من المعلومات