لماذا يختلف عنوان خروج VPN عن لغة متصفحك
يطلب Accept-Language لغة للاستجابة؛ أما VPN فيغيّر عنوان المصدر. وعندما تبدو صفحة الموقع معرَّبة، تحسم ثلاثة مدخلات أيها انتصر.
افتح أدوات المطوّر، وحمّل الصفحة، واقرأ ترويسات الطلب قبل أن تستنتج أي شيء عن VPN. ستجد عادةً سطر Accept-Language يطلب مجموعة محددة من اللغات، وهذا السطر يأتي من إعدادات متصفحك لا من عنوان الخروج. ناطق بالفرنسية على منفذ في طوكيو ما زال يرسل الفرنسية، والموقع الذي يجيب بالفرنسية يجيب على الترويسة. النفق لا يسرّب لمجرد أن الصفحة وصلت بلغة مألوفة.
اقرأ الترويسة قبل أي شيء آخر
في متصفح سطح المكتب، افتح لوحة الشبكة، وأعد التحميل، وانقر على طلب المستند، ثم انظر تحت ترويسات الطلب. ومن طرفية يمكنك رؤية الشيء نفسه من دون متصفح، ويمكنك تجاوز القيمة لاختبار سلوك الموقع:
curl -sS -D /tmp/h1 -o /tmp/b1 https://example.com
curl -sS -D /tmp/h2 -o /tmp/b2 -H 'Accept-Language: fr,en;q=0.6' https://example.com
grep -o 'lang="[^"]*"' /tmp/b1 /tmp/b2
diff /tmp/b1 /tmp/b2 | head -40
الآن صار الجسم على القرص، فالمقارنة تدور حول الصفحة لا حول ترويسة قد لا تُرسل أبدًا. انظر إلى السمة lang في وسم html وإلى النص المرئي، لأن Content-Language اختيارية وكثير من الخوادم يحذفها. لذا فإن موقعًا يبدّل الصفحة كلها من الإنجليزية إلى الفرنسية على العنوان نفسه قد يبدو بلا تغيير في مقارنة ترويسات فقط. وإذا تبعت لغة المستند الترويسة بينما بقي منفذ الخروج ثابتًا، فإن الترويسة هي المدخل الحاسم وVPN غير ذي صلة بتلك الملاحظة.
استخدم ملف تعريف متصفح ثانيًا بدلًا من مبدّل اللغة الخاص بالموقع في هذا الاختبار. فالمبدّل يكتب عادةً ملف تعريف ارتباط، وهو مدخل مختلف، وستنتهي إلى قياس ملف الارتباط بدلًا من الترويسة.
ماذا تعني قيم q، وماذا لا تعني
يعرّف RFC 9110 في القسم 12.5.4 Accept-Language بأنه قائمة باللغات الطبيعية المفضّلة للاستجابة. ويمكن لكل بند أن يحمل وزنًا من 0 إلى 1، والنطاق الذي لا يحمل وزنًا يكون وزنه 1، والوزن 0 يجعل اللغة غير مقبولة. هذا ترتيب تفضيل، لا أكثر.
القيمة ليست تقرير موقع، ولا درجة ثقة، ولا هوية. والخادم حر في تجاهلها، أو في تقديم الترجمة الوحيدة التي لديه، أو في ترك إعادة توجيه قائمة على البلد تفوز. تفاوض المحتوى قرار الخادم، والترويسة مدخل إلى ذلك القرار لا أمر.
هذا هو الجزء الذي يفوته الناس حين يعاملون صفحة معرّبة كاختبار موقع. فالترويسة تبيّن اللغات التي يفضّل الشخص قراءتها، والتفضيل يمكن أن يسافر إلى أي مكان.
ثلاثة مدخلات تحدد اللغة التي تحصل عليها فعليًا
افصل بينها واحدًا واحدًا، لأنك من الخارج لا ترى أيها انتصر:
- الترويسة. اختبر بملف تعريف ثانٍ مضبوط على قائمة لغات مختلفة، وراقب تغيّر الصفحة مع بقاء كل شيء آخر ثابتًا.
- اختيار محفوظ. اختبر في نافذة خاصة بلا ملفات ارتباط، أو امسح تخزين الموقع. فإعدادات الحساب ومدخلات localStorage قد تثبّت لغة لأشهر.
- عنوان URL أو إعادة توجيه. اختبر بطلب المسار اللغوي الصريح، مثل
/fr/، وبرصد رموز الحالة لإعادة توجيه قائمة على عنوان المصدر.
نفّذ الاختبارات الثلاثة بهذا الترتيب واكتب أيها حرّك النتيجة. فتحميل صفحة واحدة تتغير لغتها بعد تفعيل VPN دليل ضعيف، لأن إعادة التوجيه وملف ارتباط مخزّنًا مؤقتًا يمكن أن ينتجا الانطباع نفسه.
ما الذي يغيّره VPN وما لا يغيّره
يغيّر النفق عنوان المصدر الذي يراه الخادم، ومعه كل ما يستنتجه الخادم من تحديد الموقع الجغرافي لعنوان IP. لكنه لا يعيد كتابة تفضيلات لغة المتصفح، ولا يمسح إعدادًا مخزنًا، ولا يغيّر عنوان URL الذي كتبته. تلك المدخلات تبقى حيث كانت تمامًا، لذا قد تحتفظ الصفحة بلغتها القديمة بعد انتقال منفذ الخروج.
يضيف تحديد الموقع الجغرافي ضجيجه الخاص. فقواعد بيانات العناوين تختلف فيما بينها، وقد يُعيَّن منفذ مسجّل في بلد ما إلى بلد آخر، ما يجعل إعادة التوجيه القائمة على البلد تبدو خاطئة لأسباب لا علاقة لها بمتصفحك.
يفصل بينها فحص سريع: اطلب الصفحة من جديد، وسجّل العنوان الذي تقدّمه، ثم قارن لغة الاستجابة بقائمة ترويستك. إذا طابقت اللغة قائمتك لا بلد منفذ الخروج، فالترويسة هي المدخل الحاسم ولا شيء يحتاج إلى إصلاح في النفق.
ما الذي تثبته الصفحة المعرّبة وما لا تثبته
هناك نقطة خصوصية حقيقية هنا، وهي أصغر من النقطة التي يطرحها الناس عادةً. فالقائمة الكاملة لتفضيلات اللغة مدخل من مدخلات البصمة الرقمية وقد تكشف شيئًا عن هويتك أو عما تقرأه. هذا إفصاح حقيقي عن التفضيل، وهو ليس مثل إثبات أن حركة المرور خرجت من النفق.
الصفحة المعرّبة ليست مؤشر تسريب. وإن أردت فعلًا اختبار التسريب، فافحص عنوان الخروج الذي يراه الموقع، ومسار الموفّر المستخدم في استعلامات الأسماء، والمرشّحات التي يكشفها مكدّس WebRTC. تلك الاختبارات تجيب عن السؤال الذي لا تستطيع لغة الصفحة الإجابة عنه.
في المرة القادمة التي يبدو فيها أن موقعًا يعرف بلدك، افتح ترويسات الطلب أولًا. فإن طابقت لغة الاستجابة قائمة متصفحك، لم يتسرب شيء، والطبقة التي يجب النظر إليها هي التي أمامك.