← العودة إلى المدونة

navigator.cpuPerformance في Chrome 152: إشارة جديدة للكشف عن مكافحة الكشف وجمع البيانات

25 أغسطس 2026 Chrome 152 أحضر navigator.cpuPerformance — خاصية تخبر الموقع بفئة المعالج برقم واحد من 0 إلى 4. إنها فقط 2.3 بت من الإنتروبيا، ولكن يمكن قراءتها مجانًا، ولا تتغير بين الجلسات، ويتم التحقق منها لتوافقها مع عدد النوى، والذاكرة، وGPU. دعونا نحلل من يتأثر بذلك أكثر وما يجب التحقق منه في ملفك الشخصي الآن.

📅١٠ ربيع الآخر ١٤٤٨ هـ
navigator.cpuPerformance في Chrome 152: إشارة جديدة للكشف عن مكافحة الكشف وجمع البيانات

في 25 أغسطس 2026، وصل Chrome 152 إلى القناة المستقرة على Windows وMac وLinux وChromeOS وAndroid - وجلب خاصية navigator.cpuPerformance. رقم واحد من 0 إلى 4، يقرأه الموقع بشكل متزامن، بدون أذونات وبدون أي دورة حسابية واحدة. تم تصميمه كإشارة لمكالمات الفيديو والبث: إعطاء جهاز ضعيف 240p بدون تشويش في الخلفية، وجهاز قوي 1080p مع تأثيرات. بعد أسبوعين من الإصدار، تناقش صناعة السكرايبينغ شيئًا آخر: لدى أنظمة مكافحة الروبوتات إشارة رخيصة ومستقرة عن العتاد الذي يعمل عليه متصفحك.

ماذا يعطي المتصفح بالضبط

تعود الخاصية ليس بالجيجاهرتز ولا بنموذج المعالج، بل بـ "سلة" الأداء. وفقًا لـ مذكرة WICG التفسيرية، هناك أربعة مستويات بالإضافة إلى الصفر:

  • 0 - لم يتم تصنيف الجهاز;
  • 1 - غير مناسب تقريبًا للمهام الثقيلة;
  • 2 - ضعيف، لكنه يعمل;
  • 3 - مريح للسيناريوهات العادية;
  • 4 - عالي الأداء، مع احتياطي للمهام المتعددة.

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

كانت التنفيذ الفعلي في Chromium أبسط من المواصفات. في تحليل Zyte، يظهر أن التصنيف يعتمد في المقام الأول على عدد النوى المنطقية وعلى جدول الزيادات والنقصان المدمج: التردد لا يؤخذ بعين الاعتبار على الإطلاق، رغم أن المواصفات تسمح بذلك. تحصل AMD Ryzen، نوى Intel Gracemont، Apple silicon وIntel Core Ultra على زيادة؛ بينما تحصل Intel Atom ومعالجات عصر Core 2 على نقص. يبدو الربط الخشن هكذا: الآلات ذات النواة الواحدة والضعيفة جدًا تقع في المستوى الأول، بينما تعطي الآلات ذات النواتين إلى الأربع المستوى الثاني، والأربعة إلى العشرة نوى أو الشرائح الحديثة ذات الكفاءة الطاقية - المستوى الثالث، بينما الثمانية نوى أو أكثر على Core Ultra، سلسلة Apple M وكل ما هو من عشرة نوى - المستوى الرابع.

لماذا هذه إشارة كشف، وليست مجرد بايت آخر من الإنتروبيا

القيمة في حد ذاتها ضعيفة: خمسة خيارات - تعطي حوالي 2.3 بت من الإنتروبيا، أقل مما يعطيه لغة الواجهة. الخطر يكمن في ثلاث خصائص أخرى.

إنها مجانية. لأخذ توقيت السرعة الفعلية لتنفيذ JS، يحتاج السكربت للكشف إلى شغل المعالج لعشرات المللي ثانية، وهذا ملحوظ في المحلل. هنا - قراءة متزامنة للخاصية، صفر تكاليف، صفر آثار.

إنها مستقرة. القيمة لا تعتمد على تحميل الجهاز في لحظة الفحص: إنها فئة العتاد، وليست الاستخدام الحالي. بين الجلسات، وإعادة التشغيل، وتغيير IP تبقى كما هي - أي أنها مناسبة كجزء من معرف ملف تعريف طويل الأمد.

يمكن التحقق منها للتوافق. هذه هي النقطة الرئيسية. نادرًا ما تحظر محركات مكافحة الروبوتات الحديثة بناءً على حقل واحد - تبحث عن تناقضات داخلية في المجموعة. يجب على الجهاز الذي يدعي المستوى الرابع تأكيده بمعلومات موثوقة من navigator.hardwareConcurrency، وnavigator.deviceMemory المعقولة، وسطر حديث من GPU-renderer وسرعة تنفيذ مناسبة لـ JS. الملف الشخصي الذي يعطي المستوى 4 وفي نفس الوقت ينفذ اختبار الأداء كآلة افتراضية ثنائية النواة، يتم القبض عليه من خلال تحقق بسيط.

يظهر بشكل منفصل تقريبًا فاصل جاهز "مركز البيانات مقابل المستخدم الحقيقي": نموذج سحابي نموذجي على اثنين من vCPU يبلغ بصدق المستوى الأول، بينما تعيش أجهزة الكمبيوتر المحمولة والهواتف الاستهلاكية في المستوى الثالث إلى الرابع. بالنسبة للسكرايبر الذي يعمل على VPS رخيصة في وضع headless ويدعي أنه Chrome عادي على Windows، فإن هذا الجمع غير مريح.

كيف يختلف عن hardwareConcurrency، الذي كان موجودًا دائمًا

سؤال منطقي: عدد النوى كان يُقرأ من قبل الموقع من خلال navigator.hardwareConcurrency، وحجم الذاكرة من خلال navigator.deviceMemory. ماذا تغير؟

تغيرت الترابطية. hardwareConcurrency - رقم خام، وتم استبداله منذ فترة طويلة وفي كل مكان: وضعت ثمانية بدلاً من اثنين وثلاثين، وانتهى الأمر. cpuPerformance - قيمة مشتقة، تم حسابها بواسطة المتصفح نفسه وفقًا لجدول مدمج. بمجرد أن تظهر في المجموعة حقلين، أحدهما يتم حسابه من الآخر، فإن أي تعديل أحادي الجانب يمزق العلاقة بينهما. تم تعيين أربعة نوى، لكن المستوى ظل الرابع - وفقًا لعملية التنفيذ، يتطلب هذا الجمع إما Apple silicon أو Core Ultra، أو عشرة نوى؛ مما يعني أن إما عدد النوى كاذب، أو أن سطر GPU كاذب، ويكفي للكاشف أن يلاحظ مجرد وجود عدم تطابق، دون الحاجة إلى معرفة مكان الكذب بالضبط.

لهذا السبب بالضبط، قوائم التحقق القديمة "ما هي الحقول التي يجب استبدالها في الملف الشخصي" تصبح قديمة ليس بنقطة واحدة، بل بكتل كاملة: السؤال الصحيح الآن ليس "ماذا يجب استبداله"، بل "ما هي التكوينات المتوافقة للعتاد التي نحصل عليها في المجموع".

من يتأثر بذلك أكثر من غيره

Chromium-only - وهذا ليس ظرفًا مخففًا. اتخذ WebKit موقفًا "ضد" من خلال هذا API، ولم تعلن Mozilla عن موقف علني، لذا فمن المحتمل ألا تكون الخاصية موجودة في Safari وFirefox. لكن الجزء الأكبر من أتمتة الإنتاج - Playwright وPuppeteer وnodriver وPatchright ومتصفحات الوكلاء - مبنية على Chromium. بمعنى آخر، تصل الإشارة تمامًا إلى تلك الفجوة حيث لا يتوقعها أحد.

تؤثر التناقضات بشكل أكبر على محاكاة ملفات تعريف الهواتف المحمولة. إذا كان ملف تعريف مكافحة الكشف يدعي أنه هاتف Android، وكان cpuPerformance تحت ذلك يرد "4"، لأن المتصفح يعمل فعليًا على سطح المكتب مع Ryzen، - هذه ليست دقة صغيرة، بل زوج من الإشارات المتناقضة. نفس الشيء مع سيناريوهات المزرعة، حيث تعيش عشرات الملفات الشخصية مع "أجهزة" مختلفة على نفس الآلة المضيفة وبالتالي تعطي مستوى متطابق.

ماذا يغير هذا في مجموعة أدوات التحليل

بعض النتائج العملية لأولئك الذين يقومون بتشغيل المتصفحات headless بكميات كبيرة.

  • الحاويات ترث من المضيف. المتصفح في Docker يرى نوى الآلة المضيفة، وليس حدود cgroup، - مما يعني أن عشرة حاويات على خادم ضخم واحد ستعطي عشرة مستويات قصوى متطابقة. التنوع في الملفات الشخصية، الذي كنت ترسمه بعناية في user-agent، غير موجود على مستوى العتاد.
  • VPS الرخيصة أصبحت أكثر وضوحًا الآن. اثنان من vCPU - هذا هو المستوى الأول، والمستوى الأول على Chrome المكتبي تحت Windows نادرًا ما يظهر عند الأشخاص الحقيقيين. في السابق، كان الخادم الضعيف بطيئًا فقط؛ الآن هو أيضًا مُعلّم.
  • الإشارة مجانية للموقع. تشمل الفحوصات الثقيلة مثل اختبارات التوقيت المواقع بشكل انتقائي، لأنها تأخذ وقت المستخدم. قراءة الخاصية لا تكلف شيئًا، لذلك ستضاف إلى المجموعة الأساسية حتى تلك المواقع التي كانت تقتصر سابقًا على سمعة IP والعناوين.
  • سوف تتواجد بجانب Compute Pressure. في ملاحظات الإصدار، يقترح Chrome مباشرة دمج API الجديد مع Compute Pressure API - مما يعني أن مجموعة "فئة العتاد + الحمل الملحوظ" تم تصميمها في الأصل كسيناريو قياسي، ولن يتعين على مكافحة الروبوتات اختراع أي شيء.

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

ماذا تفعل عمليًا

  1. احصل على القيمة الحالية. في وحدة التحكم للملف الشخصي: navigator.cpuPerformance، navigator.hardwareConcurrency، navigator.deviceMemory وسطر GPU-renderer. سجلها كأربعة، وليس حقلًا واحدًا - سيتم التحقق منك بالضبط كزوج.
  2. تحقق من المستوى مع أسطورة الملف الشخصي. الأسطورة المحمولة - المستوى الأول إلى الثالث، الكمبيوتر المحمول الاقتصادي - المستوى الثاني إلى الثالث، الكمبيوتر المكتبي الرائد - المستوى الرابع. المستوى 4 تحت ستار Android القديم أو المستوى 1 تحت ستار MacBook على سلسلة M مشبوهة بنفس القدر.
  3. لا تعدل الخاصية بشكل مباشر. يتم اكتشاف الاستبدال عبر Object.defineProperty من خلال آثار إعادة تعريف الجيتير والاختلاف مع السرعة الفعلية للتنفيذ. إذا كان يجب التغيير، فليكن على مستوى بناء المتصفح أو من خلال الآليات المدمجة.
  4. تذكر تجاوز القانون. يمنح Chrome المستخدم يدًا في الإعدادات (الأداء → السرعة → تجاوز مستوى أداء وحدة المعالجة المركزية)، والإداريين - سياسة الشركات. من المفيد معرفة ذلك من كلا الجانبين: قد تكون القيمة "حقيقية" فقط، ولكن أيضًا محددة يدويًا، وقد يصبح التجاوز المتطابق على مجموعة من الملفات الشخصية علامة بحد ذاتها.
  5. وزع الملفات الشخصية على عتاد مختلف. إذا كانت جميع ملفاتك الشخصية تعمل على خادم واحد، سيكون لها نفس المستوى - بغض النظر عن الأجهزة التي تمثلها. هذه هي الحالة التي تحل فيها مجموعة من عدة آلات بتكوينات مختلفة المشكلة بصدق، بينما لا تفعل التصحيحات ذلك.

لمزيد من التفاصيل حول الإشارة المجاورة من نفس العائلة - في تحليل بصمة حجم ذاكرة الجهاز، وبالنسبة للمتصفحات الخفية التي تعمل بهذه الخصائص بشكل افتراضي، هناك اختبار nodriver وCamoufox وPatchright.

أين البروكسي هنا

لنكن صادقين: البروكسي لا يصلح بصمة المتصفح. يتم حساب cpuPerformance على جانب العميل، ولا يمكن لأي IP تغييره. لكن مكافحة الروبوتات تتخذ القرار بناءً على مجموع الطبقات، وعادة ما يحدث الفشل عند تقاطع الطبقات.

تبدو سلسلة نموذجية، حيث تنهار الإعدادات الرخيصة، هكذا: IP من شبكة استضافة معروفة، المستوى الأول من المعالج، علامات headless في JS - ثلاث إشارات مستقلة، كل منها مقبول بمفرده، لكن معًا تتجمع في حكم واضح. من الأسهل وأكثر موثوقية إزالة الطبقة الشبكية من هذه المجموعة بدلاً من القتال مع حقول المتصفح: مع IP السكني، يبدو الطلب كحركة مرور من مزود خدمة الإنترنت المنزلي العادي، وتختفي فرضية "مركز البيانات" من الكاشف تلقائيًا. بالنسبة للأساطير المحمولة، المنطق هو نفسه - يجب أن يدعم البروكسي المحمول الملف الشخصي المحمول، وإلا فإن التناقض ينتقل ببساطة من المعالج إلى الشبكة.

باختصار

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