User-Agent Client Hints وتقليص UA
ترسل المتصفحات المبنية على Chromium سلسلة User-Agent مقلّصة: جُمّدت التفاصيل التي كانت تحدد الجهاز بأكبر دقة على قيم ثابتة، وانتقلت البيانات الدقيقة إلى User-Agent Client Hints (UA-CH)، التي يجب على الموقع طلبها. يحلّل هذا الدليل سلسلة قديمة لـ Chrome على Android إلى جانب سلسلة مقلّصة.
مثال تطبيقي
Mozilla/5.0 (Linux; Android 12; SM-G991B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.88 Mobile Safari/537.36
- المتصفح
- Chrome 99.0.4844.88
- المحرك
- Blink
- نظام التشغيل
- Android 12
- فئة الجهاز
- جوال
- الجهاز
- Samsung SM-G991B
- بنية المعالج
- غير معروف
- Bot / زاحف
- لا
Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Mobile Safari/537.36
- المتصفح
- Chrome 120.0.0.0
- المحرك
- Blink
- نظام التشغيل
- Android 10
- فئة الجهاز
- جوال
- الجهاز
- K
- بنية المعالج
- غير معروف
- Bot / زاحف
- لا
تكشف السلسلة القديمة عن Android 12 وطراز Samsung SM-G991B والإصدار الكامل 99.0.4844.88. أما في السلسلة المقلّصة، فإن Android 10 والطراز K قيم بديلة يرسلها كل جهاز Android، وينتهي الإصدار بـ .0.0.0. يُبلغ المحلّل عمّا تقوله السلسلة بالضبط — Android 10، الطراز K — لذا لا يحمل معلومات حقيقية سوى الإصدار الرئيسي 120 ورمز Mobile.
Sec-CH-UA: "Not_A Brand";v="8", "Chromium";v="120", "Google Chrome";v="120" Sec-CH-UA-Mobile: ?1 Sec-CH-UA-Platform: "Android" Accept-CH: Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List
القواعد الأساسية
- تحتفظ سلاسل Chrome المقلّصة بالإصدار الرئيسي فقط؛ أما الإصدار الفرعي والبناء والتصحيح فهي دائماً 0.0.0.
- على Android، يُثبَّت إصدار نظام التشغيل عند 10 ويُستبدل طراز الجهاز بـ K. وعلى سطح المكتب تُجمَّد المنصة على قيم مثل Windows NT 10.0; Win64; x64 أو Macintosh; Intel Mac OS X 10_15_7 أو X11; Linux x86_64.
- عبر HTTPS، ترسل متصفحات Chromium افتراضياً ثلاثة تلميحات منخفضة الإنتروبيا: Sec-CH-UA (العلامات التجارية والإصدارات الرئيسية) وSec-CH-UA-Mobile وSec-CH-UA-Platform.
- لا تُرسل التلميحات التفصيلية مثل Sec-CH-UA-Platform-Version وSec-CH-UA-Model وSec-CH-UA-Full-Version-List إلا بعد أن يطلبها الخادم في رأس استجابة Accept-CH. وفي JavaScript استخدم navigator.userAgentData.getHighEntropyValues().
- تتضمن قائمة العلامات التجارية إدخالاً مزيفاً عمداً يُعرف بـ «GREASE» مثل «Not_A Brand». ابحث عن العلامة التي تحتاجها بدلاً من مقارنة الرأس كاملاً.
- لا يزال Windows 11 يرسل Windows NT 10.0 في سلسلة User-Agent؛ وقيمة Sec-CH-UA-Platform-Version البالغة 13.0.0 أو أعلى تدل على Windows 11.
- تلميحات العميل (Client hints) ميزة خاصة بـ Chromium، لذا احتفظ بآلية احتياطية تعتمد على User-Agent للمتصفحات الأخرى. يقرأ هذا المحلّل سلسلة User-Agent فقط، لا تلميحات العميل.