ما هو Browser Language Fingerprinting؟ لغة المتصفح وخطر التتبع
المتصفح والجهاز

ما هو Browser Language Fingerprinting؟ لغة المتصفح وخطر التتبع

تعرّف على كيفية استخدام Accept-Language وnavigator.languages لتعريفك عبر المواقع — بدون كوكيز أو تخزين.

8 دقائق قراءة·

بصمة لغة المتصفح (Browser language fingerprinting) هي أسلوب تتبع يقرأ navigator.languages — خاصية JavaScript تكشف عن قائمتك الكاملة المرتبة من اللغات المفضلة — لبناء معرّف دائم لمتصفحك دون تخزين أي شيء على جهازك. يمكنك رؤية ما يكشفه متصفحك بالضبط الآن على whatsmy.fyi.

ملخص سريع

يكشف كل متصفح عن قائمة مرتبة من تفضيلاتك اللغوية عبر navigator.languages. يقرأ المتتبعون هذه المصفوفة — جانبًا إلى جانب منطقتك الزمنية وتحديد موقع IP الجغرافي وحجم الشاشة — للتحقق من بصمة متصفحك أو تدقيقها. بمفردها، تفضيل اللغة إشارة منخفضة الانتروبيا. مدمجةً مع اثنتي عشرة إشارة أخرى تصبح فحص اتساق موثوقًا يُؤكد أنك الشخص ذاته عبر المواقع والجلسات، حتى بعد مسح ملفات تعريف الارتباط.

ما هو Browser Language Fingerprinting؟

بصمة لغة المتصفح مكوّن واحد من مجموعة أدوات بصمة المتصفح الأوسع. تستغل واجهتَي API متصفح مرتبطتَين ارتباطًا وثيقًا: navigator.languages (مصفوفة مرتبة من رموز اللغة) وnavigator.language (التفضيل الأعلى المفرد). كلتاهما متاحتان لأي JavaScript تعمل على الصفحة بصفر تفاعل من المستخدم أو إذن مطلوب.

ما يجعل بيانات اللغة مفيدة للمتتبعين ليس أنها عالية التفرد بذاتها — معظم المتحدثين بالإنجليزية يُبلّغون عن ["en-US"، "en"]. بل تؤدي وظيفتين: تُضيف إلى انتروبيا البصمة عندما يكون الجمع غير عادي، وتعمل كإشارة اتساق يتحقق منها المُدققون بمقارنتها مع رأس HTTP السابق Accept-Language وتحديد الموقع الجغرافي لـ IP والمنطقة الزمنية للنظام. أي عدم تطابق بين هذه الطبقات هو نفسه إشارة تتبع — تُعلّم على مستخدمي VPN ومحاكيات المتصفح وأدوات الخصوصية.

تختبر أداة Cover Your Tracks من Electronic Frontier Foundation انكشاف اللغة كواحدة من أكثر من 30 إشارة تقيسها في بصمة متصفحك، وتجدها دائمًا قابلة للقراءة في كل متصفح سائد.

كيف تعمل navigator.languages؟

تُعيد navigator.languages مصفوفة للقراءة فقط من علامات لغة BCP 47 مرتبة من الأكثر تفضيلًا إلى الأقل. تتبع كل علامة تنسيق language-REGION — مثلًا en-US أو zh-CN أو ja-JP. يساوي العنصر الأول دائمًا قيمة navigator.language.

تُملأ المصفوفة من إعدادات لغة متصفحك، التي عادةً تعكس قائمة اللغة المهيّأة في نظام تشغيلك. في Chrome وFirefox، يمكن للمستخدمين تهيئة لغات متعددة في إعدادات المتصفح؛ ينعكس الترتيب الناتج بالضبط في navigator.languages. تُرسل القائمة ذاتها كرأس HTTP للطلب Accept-Language مع كل تحميل للصفحة.

// Reading language preferences — available to any site script
console.log(navigator.language);
// → "en-US"

console.log(navigator.languages);
// → ["en-US", "en", "de", "fr"]
// Each language preference is listed in priority order.
// A bilingual user who added German and French fallbacks
// is far more identifiable than a monolingual English speaker.

// The browser sends the same preferences in every HTTP request:
// Accept-Language: en-US,en;q=0.9,de;q=0.8,fr;q=0.7

// A fingerprinting script combines this with other signals:
function getLanguageFingerprint() {
  return {
    language: navigator.language,
    languages: navigator.languages,
    // Cross-check: does language match the user's timezone?
    timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
    // Cross-check: does language match the system locale?
    locale: Intl.DateTimeFormat().resolvedOptions().locale,
  };
}
// Output for a bilingual user: high entropy
// Output for a typical en-US monolingual user: low entropy,
// but still useful for consistency validation

navigator.language مقابل navigator.languages

الخاصيتان مرتبطتان لكنهما غير متطابقتين، ويقرأ المتتبعون كلتيهما:

الخاصيةنوع القيمة المُعادةمثال على القيمةدور البصمة
navigator.languageسلسلة نصية"en-US"انتروبيا منخفضة؛ يشترك معظم المستخدمين في منطقة معينة
navigator.languagesمصفوفة سلاسل["en-US"، "de"، "ja"]انتروبيا أعلى؛ التوليفات غير العادية مميزة
رأس Accept-Languageسلسلة رأس HTTPen-US,en;q=0.9,de;q=0.8يُرسل مع كل طلب؛ ناقل بصمة من جانب الخادم
اللوكال من API الـ Intlسلسلة نصية"en-US"فحص متقاطع مع مصفوفة اللغة للتحقق من الاتساق

ما مدى تفرد بصمة اللغة؟

تفضيل اللغة وحده من بين الإشارات الأدنى انتروبيا في مجموعة أدوات البصمة. قوتها تأتي من التركيب والفحص المتقاطع للاتساق. يضع الجدول أدناه إسهامها في السياق جانبًا إلى جانب إشارات أعلى انتروبيا:

الإشارةالانتروبيا التقريبيةالمصدر
سلسلة وكيل المستخدم10–15 بتEFF Cover Your Tracks
رسم Canvas8–12 بتبحث EFF / BrowserLeaks
Renderer لـ WebGL6–10 بتدراسات أكاديمية حول البصمة
المنطقة الزمنية للنظام3–4 بتEFF Panopticlick، 2010
مصفوفة اللغة (أحادي اللغة)أقل من 1 بتتحليل EFF / 404privacy.com
مصفوفة اللغة (متعدد اللغات، تركيبة غير عادية)3–6 بتدراسات ميدانية أكاديمية
البصمة الكاملة (30+ إشارة مجمّعة)18+ بت (1 في 287,000)بحث EFF Panopticlick الأصلي

وجدت دراسة Panopticlick لعام 2010 من EFF — التي حللت أكثر من 500,000 بصمة متصفح — أن 84% من المتصفحات كانت فريدة تمامًا. كان تفضيل اللغة إحدى الإشارات المقاسة؛ زاد إسهامها بشكل ملحوظ للمتصفحات ذات التهيئات غير الإنجليزية أو متعددة اللغات. والأهم أن الدراسة وجدت دليلًا على أن بصمة اللغة لها تأثير غير متكافئ: يواجه المستخدمون الناطقون بالإسبانية ومتحدثو اللغات الأقلية معدلات تفرد أعلى وبالتالي تعرضًا أكبر للتتبع من المستخدمين الناطقين بالإنجليزية فقط.

من يستخدم بصمة اللغة في الواقع؟

شبكات الإعلانات والمتتبعون عبر المواقع

تُجمّع منصات تقنية الإعلانات navigator.languages مع عشرات الإشارات الأخرى عند بناء معرّف الجهاز. بيانات اللغة ذات قيمة خاصة كإشارة اتساق — إذا كان تحديد الموقع الجغرافي لـ IP للمستخدم يُشير إلى ألمانيا لكن مصفوفة لغته هي ["en-US"، "en"]، فإن هذا التناقض يُشير إلى VPN أو بروكسي، مما يؤثر بدوره على قرارات استهداف الإعلانات. مع إيقاف ملفات تعريف الارتباط من طرف ثالث عبر المتصفحات، نمت المعرّفات المعتمدة على البصمة لتملأ وظيفة الاستهداف ذاتها.

منصات كشف الاحتيال والروبوتات

تشمل خدمات كـ Fingerprint.com تفضيل اللغة في نظام Smart Signals الخاص بها كجزء من ملف تعريف ذكاء الجهاز. إذا وصلت محاولة تسجيل دخول من جهاز تختلف مصفوفة لغته عن تلك المسجّلة لذلك الحساب، فإنها تُطلق إشارة خطر. كثيرًا ما تُبلّغ أدوات أتمتة المتصفح والمتصفحات بدون واجهة مستخدم عن قيم لغة غير عادية أو افتراضية — ["en-US"] في تهيئة عامة تمامًا — يستخدمها أنظمة الاحتيال للإشارة إلى نشاط الروبوتات.

أنظمة مكافحة الروبوتات ومحاكيات المتصفح

تفحص الأنظمة التي تحمي من احتيال الحسابات وتوسع التذاكر وحشو بيانات الاعتماد إشارات موقع متعددة بصورة متقاطعة: navigator.languages ورأس HTTP Accept-Language وتحديد الموقع الجغرافي لـ IP والمنطقة الزمنية التي تُبلّغ عنها API الـ Intl. تُشير البصمة المتسقة تمامًا عبر الأربعة إلى متصفح شرعي. التناقضات — الشائعة في Selenium وPuppeteer وأدوات انتحال البصمة — إشارة روبوت موثوقة. وثّق البحث المنشور من قِبل ACM المتتبعين وهم يقرؤون هذه القيم ويقارنونها في الإنتاج.

تطبيق حواجز الدفع والوصول الإقليمي

تجمع مواقع الإعلام وخدمات البث منطقة IP مع navigator.languages للكشف عن المستخدمين الذين يتجاوزون القيود الجغرافية. المستخدم الذي يُوجّه حركة مروره عبر نقطة خروج أمريكية بينما يُبلّغ متصفحه عن ["ja"، "ja-JP"] هو تناقض واضح يُطلق تطبيق قيود الموقع الجغرافي.

هل بصمة اللغة قانونية؟

بموجب GDPR، تُسهم بيانات تفضيل اللغة في بصمة متصفح تُعدّ بيانات شخصية عندما يمكن ربطها بشكل معقول بفرد. طلبت هيئة حماية البيانات الفرنسية (CNIL) صراحةً الحصول على موافقة مستنيرة لبصمة المتصفح المستخدمة في الإعلانات، مع استثناء ضيق لمصلحة مشروعة لمنع الاحتيال والأمان. بموجب CCPA وCPRA الأمريكيين، تُعامَل بيانات البصمة — بما فيها المعرّفات المعتمدة على اللغة — كمعلومات شخصية خاضعة لحقوق الإلغاء. يظل الإنفاذ غير متسق عبر الولايات القضائية، لكن الضغط التنظيمي على التتبع المعتمد على البصمة ينمو.

تُحدد إرشادات W3C حول البصمة صراحةً navigator.languages كسطح بصمة وتنصح موردي المتصفحات بتحديد انكشافها. أثّرت هذه الإرشادات على سلوك Safari وBrave ووضع الخصوصية في Firefox.

كيف تحمي نفسك من بصمة اللغة

الحماية من بصمة اللغة أكثر قابلية للتحقيق من الحماية من الإشارات عالية الانتروبيا كـ canvas أو WebGL — لأن البيانات أبسط للتوحيد. هذه الخيارات مرتبة من الأقوى إلى الأكثر عملية:

  • متصفح Brave (موصى به للاستخدام اليومي): تُطبّق Shields في Brave حماية بصمة اللغة بشكل افتراضي. في الوضع القياسي، يُبلّغ Brave فقط عن تفضيل لغتك الأعلى بدلًا من المصفوفة الكاملة. في الوضع الصارم، يُبلّغ دائمًا عن "en-US" بصرف النظر عن إعداداتك الفعلية، مما يضعك في أكبر مجموعة إخفاء هوية ممكنة. تمتد الحماية لتشمل رأس Accept-Language أيضًا، مما يضمن تقارير متسقة من طبقة HTTP وطبقة JavaScript.
  • Firefox مع privacy.resistFingerprinting: تمكين هذه الخاصية في about:config يجعل Firefox يُبلّغ فقط عن ["en-US"، "en"] بصرف النظر عن لغاتك المهيّأة، مما يطابق الأساس في متصفح Tor ويعظّم مجموعة إخفاء الهوية.
  • متصفح Tor (أقوى حماية): يُبلّغ متصفح Tor عن تهيئة لغة موحدة متطابقة لجميع مستخدمي Tor — مما يجعل التتبع الفردي للغة مستحيلًا داخل شبكة Tor. المفاضلة هي تصفح أبطأ وبعض مشكلات توافق المواقع.
  • Safari (حماية جزئية مدمجة): يُبلّغ Safari على iOS وmacOS فقط عن تفضيل لغتك الأعلى، لا عن المصفوفة الكاملة، ويُقيّد الخطوط المكشوفة جانبًا إلى جانب تقرير اللغة. هذه ليست حماية كاملة لكنها تُقلل بشكل ذي معنى من الإشارة المتاحة للمتتبعين.
  • قلّص قائمة لغاتك: إذا أضفت لغات متعددة لإعدادات متصفحك لمجرد تفضيلات المحتوى، فكّر في إزالة الأقل استخدامًا. التركيبة غير العادية كـ ["en-US"، "tr"، "de"، "ja"] أكثر تميزًا بكثير من ["en-US"]. هذا تغيير بسيط يُقلل بشكل ذي معنى من انتروبيا اللغة.
  • استخدم VPN — لكن افهم حدوده: يُغيّر VPN تحديد موقعك الجغرافي لـ IP، مما قد يُحدث عدم تطابق بين الموقع واللغة يصبح بدوره إشارة. لا يُغيّر VPN ما تُبلّغ عنه navigator.languages. تحقق مما إذا كانت إشارات VPN ولغتك متسقة على whatsmy.fyi.

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

هل تعمل بصمة اللغة في وضع التصفح الخاص أو الخاص؟

نعم. يمنع وضع التصفح الخاص متصفحك من حفظ التاريخ وملفات تعريف الارتباط وبيانات النماذج — لكنه لا يُغيّر إعدادات لغتك. تُعيد navigator.languages القيم ذاتها في نافذة التصفح الخاص كما في النافذة العادية. يُبلّغ Chrome في وضع التخفي عن قائمة لغتك المهيّأة الفعلية دون تغيير. فقط المتصفحات ذات حمايات البصمة النشطة — Brave وFirefox مع privacy.resistFingerprinting أو متصفح Tor — تتصرف بشكل مختلف.

ما الفرق بين navigator.language وnavigator.languages؟

تُعيد navigator.language سلسلة واحدة — تفضيل لغتك الأعلى. navigator.languages تُعيد مصفوفة مرتبة من جميع تفضيلاتك اللغوية المهيّأة، من الأكثر تفضيلًا إلى الأقل. يساوي العنصر الأول من navigator.languages دائمًا navigator.language. يقرأ المتتبعون المصفوفة الكاملة لأنها تحتوي على انتروبيا أكثر — المستخدم الذي هيّأ ["ja-JP"، "en-US"، "ko"] أكثر قابلية للتعرف بكثير من الذي يُبلّغ فقط عن "en-US".

هل يمكن لـ VPN منع بصمة اللغة؟

لا. يُوجّه VPN حركة مرورك عبر خادم مختلف لتغيير عنوان IP المرئي، لكن ليس له أي تأثير على ما تقرأه JavaScript من إعدادات لغة متصفحك. تُملأ navigator.languages من تهيئة متصفحك ونظام تشغيلك، لا من مسار شبكتك. في الواقع، يمكن لـ VPN تفاقم اتساق بصمتك: إذا أشار IP الخاص بك إلى بلد معين لكن مصفوفة لغتك تُشير إلى آخر، فإن عدم التطابق هذا نفسه إشارة تتبع مميزة.

هل رأس Accept-Language HTTP هو نفسه navigator.languages؟

يشتركان في بيانات المصدر ذاتها. يُبنى رأس Accept-Language من تفضيلاتك اللغوية ويُرسل مع كل طلب HTTP قبل تشغيل أي JavaScript — مما يعني أن أنظمة البصمة من جانب الخادم يمكنها قراءته دون الحاجة إلى تنفيذ أي نص. تكشف navigator.languages عن التفضيلات ذاتها عبر JavaScript. يُجري المتتبعون فحوصات متقاطعة لكليهما للكشف عن التناقضات التي قد تُشير إلى الانتحال. تُغطي حماية بصمة اللغة في Brave رأس HTTP وJavaScript API معًا للحفاظ على اتساقهما.

هل تؤثر بصمة اللغة على مستخدمي اللغات الأقلية أكثر؟

نعم. وجد بحث دراسة Panopticlick من EFF أن غير الناطقين بالإنجليزية والمستخدمين متعددي اللغات لديهم معدلات تفرد أعلى في بصمة المتصفح — وبالتالي تعرض أكبر للتتبع — من المستخدمين الناطقين بالإنجليزية فقط. المستخدم الذي تشمل مصفوفة لغته علامة لغة نادرة التكرار، أو تركيبة غير عادية من اللغات، أكثر قابلية للتعرف بشكل ملحوظ من المستخدم الذي يُبلّغ فقط عن ["en-US"]. هذا التأثير غير المتكافئ أحد أسباب مطالبة المدافعين عن الخصوصية بأن تتطلب البصمة موافقة صريحة بدلًا من الاعتماد على استثناءات المصلحة المشروعة.

كيف تعمل حماية بصمة اللغة في Brave تقنيًا؟

تعترض Shields في Brave استدعاءات navigator.languages ورأس Accept-Language HTTP على مستوى محرك المتصفح. في وضع Shields القياسي، يُعيد Brave فقط تفضيل اللغة الأعلى، مُسقِطًا اللغات الثانوية من المصفوفة. في الوضع الصارم، يُعيد دائمًا ["en-US"] ويضع رأس HTTP المقابل، مما يضع المستخدم في نفس مجموعة إخفاء الهوية كغالبية مستخدمي الإنترنت. يُطبَّق هذا لكل موقع ولكل جلسة، متسقًا مع نهج Brave الأوسع في Farbling لتوزيع البصمة العشوائي.

كيف تتحد بصمة اللغة مع إشارات التتبع الأخرى؟

اللغة أقوى ما تكون كجزء من بصمة متعددة الإشارات. تجمع منصات البصمة التجارية كـ Fingerprint.com اللغة مع مخرجات canvas وrenderer WebGL ودقة الشاشة وتوافر المعالج والخطوط المثبتة والمنطقة الزمنية وأكثر من 20 إشارة إضافية. تُسهم اللغة في انتروبياها الخاصة وفحص الاتساق مقابل الإشارات الأخرى المرتبطة بالموقع. تحقق بصمة كاملة تجمع 30+ إشارة على الأقل 18 بتًا من الانتروبيا — مما يعني أن 1 فقط في 287,000 متصفح يشترك في نفس الملف الشخصي — مع اللغة كأحد مُدققي الاتساق التي تُبقي الملف متماسكًا. راجع بصمة canvas و بصمة الصوت للإشارات عالية الانتروبيا التي تُعزز مُدققات اللغة.

مقالات ذات صلة

تحقق من عنوان IP وموقعك ودرجة الخصوصية — فوراً.

صفر سجلات. صفر تتبع. صفر APIs خارجية.

ابدأ الفحص الآن →

مقالات ذات صلة

ما هو Browser Language Fingerprinting؟ لغة المتصفح وخطر التتبع | whatsmy.fyi