PowerScan
AR

سلاسل User-Agent وClient Hints: ما الذي تكشفه وما الذي جُمّد

بصمات المتصفح · القراءة: 6 دقيقة · بقلم PowerScan

الصورة: Unsplash

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

ماذا تقول السلسلة

تبدو سلسلة Chromium حالية على Windows هكذا Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/154.0.0.0 Safari/537.36. الرموز التاريخية (Mozilla/5.0 وAppleWebKit وlike Gecko وSafari) موجودة للتوافق مع نصوص برمجية كُتبت قبل عقود ولا تحمل أي معلومة. الأجزاء المفيدة هي المنصة (Windows NT 10.0، حتى على Windows 11) والمعمارية والإصدار الرئيسي للمتصفح.

ما كان موجودًا سابقًا أُزيل عمدًا. الإصدار الفرعي وإصدار الترقيع صار الآن 0.0.0. وإصدار Windows مثبّت عند 10.0. وسلاسل Android لم تعد تتضمن طراز الجهاز. هذا هو «تقليص user agent» الذي أطلقه Chromium بين 2022 و2023 تحديدًا لأن السلسلة صارت سطحًا للبصمة الرقمية.

Client Hints: البيانات نفسها، عند الطلب

لم تختفِ التفاصيل المحذوفة؛ بل انتقلت إلى User-Agent Client Hints. يستطيع الخادم أن يطلب حقولًا محددة عبر ترويسة Accept-CH، فيرسل المتصفح حينها ترويسات مثل Sec-CH-UA-Platform-Version أو Sec-CH-UA-Model في الطلبات اللاحقة. التلميحات منخفضة الإنتروبيا (العلامة والإصدار الرئيسي والمنصة وعلم الجوال) تُرسل افتراضيًا. أما عالية الإنتروبيا (الإصدار الكامل والمعمارية والبتّات والطراز وإصدار المنصة) فلا تُرسل إلا للمواقع التي تطلبها، ويستطيع نص برمجي طلب المجموعة نفسها عبر navigator.userAgentData.getHighEntropyValues().

هدف التصميم أن على الموقع أن يعلن ما يريده، مما يجعل الجمع مرئيًا وقابلًا للتدقيق. عمليًا، الموقع الذي يريد أخذ البصمة لا يزال يستطيع أن يطلب كل شيء؛ والفرق أن الطلب شيء يستطيع المتصفح رؤيته وتسجيله أو رفضه.

مشكلة الاتساق

لأن الحقائق نفسها متاحة الآن من مصدرين، يمكن مقارنتها. متصفح يغيّر سلسلة user agent ليزعم macOS لكنه يترك navigator.userAgentData.platform يُبلغ عن Windows قد أوجد تناقضًا يسهل كشفه. وينطبق الأمر نفسه على الخاصية navigator.platform، والخطوط الخاصة بنظام التشغيل المرئية للصفحة، ونص مصيِّر WebGL الذي يسمّي برنامج تشغيل رسوميات لا يوجد إلا على نظام تشغيل واحد. انتحال السلسلة وحدها استراتيجية خاسرة منذ سنوات.

قراءة سلسلتك

يعرض التشخيص السلسلة الخام، والمتصفح والإصدار اللذين يستخرجهما منها، والمحرك (Blink أو Gecko أو WebKit). لاحظ أن كل متصفح على iOS يُبلغ عن WebKit مهما قالت العلامة، لأن Apple تشترط ذلك. إن فاجأك اسم المتصفح المستخرج، فالسلسلة تُغيَّر بإضافة أو بإعداد ملف تعريف؛ وكون ذلك مشكلة أم لا يتوقف على اتفاق بقية المتصفح مع التغيير.

جميع المقالات · شغّل الفحص