كيف يتم بناء سلسلة User Agent؟
يرسل كل متصفح ترويسة User-Agent مع كل طلب HTTP. على سبيل المثال، إليك ما يرسله متصفح Chrome الحالي على نظام Windows:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/157.0.0.0 Safari/537.36
Mozilla/5.0— رمز تاريخي يرسله كل متصفح لضمان التوافق مع الأنظمة القديمة.(Windows NT 10.0; Win64; x64)— منصة التشغيل؛ حتى نظام Windows 11 يُعرّف نفسه بأنه NT 10.0.AppleWebKit/537.36 (KHTML, like Gecko)— أصل محرك التصفح؛ لا يزال محرك Blink في Chrome يرسل WebKit 537.36.Chrome/157.0.0.0— اسم المتصفح وإصداره الرئيسي؛ أصبحت أرقام الإصدارات الفرعية تُضبط دائمًا على أصفار.Safari/537.36— رمز آخر للتوافقية مع خوادم الويب.
يضيف متصفح Edge الجزء Edg/ (أو EdgA/ على Android)، ومتصفح Opera يضيف OPR/، وSamsung Internet يضيف SamsungBrowser/ إلى نفس سلسلة Chromium الأساسية. وعلى أجهزة iPhone، تعرّف متصفحات Chrome وFirefox وEdge عن نفسها كـ CriOS وFxiOS وEdgiOS مدمجة في سلسلة Safari — ولهذا يجب على أدوات تحليل السلاسل فحص هذه القيم قبل فحص Chrome أو Safari، وهو أيضًا السبب في أن جهاز iPad في وضع سطح المكتب يظهر تمامًا كأنه جهاز Mac.
سلاسل User Agent المجمدة والمختصرة
للحد من تقنيات تتبع بصمة المتصفح (Fingerprinting)، توقفت المتصفحات الحديثة عن إرسال تفاصيل دقيقة. فسلسلة Chrome المختصرة تعرض دائمًا Windows NT 10.0 أو Mac OS X 10_15_7 أو Android 10; K مع تصفير الإصدارات الفرعية. أما متصفح Safari، فيرسل macOS 10.15.7 منذ سنوات، وعلى هواتف iPhone وأجهزة iPad يرسل الآن إصدار iOS 18 مجمدًا بدلًا من إصداره الحقيقي (تستخدم السلاسل هنا OS 18_7). ويرسل Firefox بدوره Mac OS X 10.15. تتبع السلاسل التي يتم إنشاؤها هنا هذه القواعد بدقة — فأي User Agent يحتوي على Chrome/157.0.7012.88 أو يحدد طراز الجهاز داخل سلسلة Chrome على Android لن يطابق أي متصفح رسمي حالي، ومن السهل اكتشافه وتصنيفه كطلب وهمي.
أما تفاصيل نظام التشغيل الدقيقة وطراز الجهاز ورقم الإصدار الكامل للمتصفح، فيتم توفيرها في متصفحات Chromium عبر تقنية User-Agent Client Hints. فعبر اتصال HTTPS، ترسل هذه المتصفحات ترويسات منخفضة التباين (Low-Entropy Hints) مثل Sec-CH-UA وSec-CH-UA-Mobile وSec-CH-UA-Platform مع كل طلب؛ اختر ترويسات HTTP + Client Hints للحصول عليها بجانب كل User Agent بتناسق تام، بالإضافة إلى ترويسة Accept-Language باللغة التي تحددها. أما القيم التفصيلية مثل Sec-CH-UA-Platform-Version فتُعتبر ترويسات عالية التباين (High-Entropy Hints): يجب أن يطلبها الخادم صراحة عبر ترويسة Accept-CH، أو عبر جافا سكريبت باستخدام navigator.userAgentData.getHighEntropyValues().
استخدام User Agents المولدة في البرمجة
اختر cURL أو Python (requests) أو Playwright (Node.js) كتنسيق للإخراج ليقوم المولد بكتابة كود برمجي جاهز للتشغيل مباشرة مع سلاسل User Agent المحددة. إليك بضع قواعد للحفاظ على واقعية الاختبارات:
- الحفاظ على تطابق الترويسات: إرسال وكيل مستخدم لـ Chrome دون ترويسات
Sec-CH-UAالمرافقة له، أو بترتيب ترويسات يشبه متصفح Firefox، يثير الشبهات فورًا. تقوم أنظمة كشف البوتات أيضًا بمقارنة بصمات TLS وHTTP/2 بنوع المتصفح المذكور، مما يجعل سكربت Python بـ User Agent لـ Chrome مكشوفًا بسهولة. - تجنب تغيير المتصفح في نفس الجلسة: يستخدم المستخدمون الحقيقيون متصفحًا واحدًا طوال فترة الزيارة؛ وتغيير User Agent مع كل طلب تصرف كلاسيكي يكشف الروبوتات والسكربتات التلقائية.
- توزيع النسب كما في حركة المرور الواقعية: يمنح المولد الأولوية لـ Chrome على Android وWindows، ولـ Safari على iPhone، تمامًا كما تظهره إحصاءات الزيارات الحقيقية على الويب.
لا يعني تزييف User Agent أن الوصول الآلي لمواقع الآخرين أصبح مسموحًا: التزم دائمًا بشروط الاستخدام وسياسات ملف robots.txt، وحافظ على معدل طلبات منخفض.
كيفية تغيير User Agent في متصفحك
- متصفح Chrome وEdge: افتح أدوات المطور (DevTools)، ثم اختر More tools ← Network conditions، ثم ألغِ تفعيل Use browser default والصق الـ User Agent المطلوب. سيظل ساريًا طالما كانت أدوات المطور مفتوحة.
- متصفح Firefox: توجه إلى
about:config، وأنشئ إعدادًا نصيًا جديدًا باسمgeneral.useragent.overrideوضع فيه الـ User Agent؛ واحذفه متى أردت الرجوع للوضع الافتراضي. - متصفح Safari: فعّل قائمة Develop من الإعدادات (Settings ← Advanced)، ثم اختر Develop ← User Agent.
التحقق من عناكب البحث الأصلية
بإمكان أي شخص إرسال ترويسة تابعة لـ Googlebot. للتأكد من أن الطلب وارد فعليًا من Google أو Bing، قم بإجراء بحث DNS عكسي (Reverse DNS) على عنوان IP — يجب أن ينتهي النطاق بـ googlebot.com أو google.com أو googleusercontent.com في بعض الحالات الخاصة؛ وينتهي بـ search.msn.com لعناكب Bing — ثم أجرِ بحث DNS أمامي للتأكد من أنه يشير إلى نفس عنوان IP الأصلي. تنشر كل من Google وMicrosoft أيضًا نطاقات عناوين IP الخاصة بعناكبها على شكل ملفات JSON. لا تعتمد أبدًا على فحص سلسلة User Agent وحدها للسماح بالوصول.
الأسئلة الشائعة
ما هو الـ User Agent الخاص بي؟
يظهر في المربع بالأعلى، مع تفاصيل المتصفح وإصداره ونظام التشغيل ونوع الجهاز التي تم اكتشافها منه. تتم قراءته محليًا داخل متصفحك عبر navigator.userAgent ولا يتم إرسال أي بيانات إلى خوادمنا.
هل هذه السلاسل حقيقية ومحدثة؟
نعم، تم إنشاؤها وفقًا للقوالب الدقيقة التي ترسلها المتصفحات حاليًا، مع جلب أرقام الإصدارات مباشرة من قنوات الإصدار الرسمية لـ Google وMicrosoft وMozilla (وهي: Chrome 157 وEdge 156 وFirefox 159) وSafari 27.0. يمكنك اختيار آخر 3 أو 6 إصدارات رئيسية لمحاكاة زيارات تجمع بين إصدارات مختلفة كما في حركة الويب الفعلية.
لماذا يُظهر كل User Agent لنظام Windows القيمة Windows NT 10.0؟
لأن مطوري المتصفحات قرروا تجميد معرّف نظام التشغيل؛ حيث يعرّف نظام Windows 11 عن نفسه بـ NT 10.0 لتفادي تعطل الأكواد البرمجية القديمة والحد من البصمة الرقمية للجهاز. للتمييز بين نظامي Windows 10 و11 برمجياً، اطلب ترويسة Client Hint عالية التباين Sec-CH-UA-Platform-Version: الإصدار 13 أو أعلى يشير إلى Windows 11.
هل يمكنني استخدام هذه السلاسل في كشط البيانات (Web Scraping)؟
يمكنك استخدامها لاختباراتك البرمجية وفي السكربتات التي تلتزم بشروط المواقع وملفات robots.txt. واستخدام User Agent واقعي وحده لا يماثل سلوك المتصفح الحقيقي بالكامل، ولا يبرر أبدًا تجاوز ضوابط الوصول أو قيود الحماية المفروضة على المواقع.
هل تغيير User Agent أمر غير قانوني؟
ليس كذلك في الأصل: يُعد تعديل وكيل المستخدم الذي يرسله متصفحك أو سكربتك ممارسة شائعة وقياسية في مجالات التطوير والاختبار. ولكن بحسب القوانين المحلية وشروط استخدام كل موقع، قد يسبب ذلك مشكلة إذا تم توظيفه لتخطي آليات التحقق والتحكم في الوصول أو لانتحال هوية جهة أخرى.