حتى في صفحة بواجهة عربية بالكامل، يبقى شريط العنوان يعرض الرابط من اليسار إلى اليمين — وهذا التناقض بين اتجاه الصفحة واتجاه الرابط هو بالضبط ما يستغله بعض المحتالين لتمويه الروابط المزيّفة.
الأجزاء الرئيسية لـ URL
- البروتوكول —
https://، يحدد طريقة الاتصال بالمورد. - المضيف —
example.com، أو نطاق عربي مثلموقع.مصريحوّله المتصفح داخليًا إلى Punycode. - المنفذ — اختياري، الافتراضي 443 لـHTTPS و80 لـHTTP.
- المسار —
/مقالات/شبكات، قد يحتوي أحرفًا عربية. - سلسلة الاستعلام — بعد
؟، مجموعة من أزواج المفتاح-القيمة. - الجزء (hash) — بعد
#، يعالجه المتصفح فقط ولا يصل إلى الخادم أبدًا.
لماذا يتحوّل المسار العربي إلى سلسلة طويلة من علامات النسبة المئوية
الأحرف العربية غير مدرجة ضمن مجموعة الأحرف الآمنة في الروابط، فكل حرف يُرمَّز أولًا إلى عدة بايتات بصيغة UTF-8، ثم يتحوّل كل بايت إلى تسلسل مثل %D8%A7. كلمة عربية واحدة في المسار قد تتحول إلى نص مشفّر يتجاوز 20 رمزًا، ما يجعل الرابط المشارك عبر واتساب يبدو أطول بكثير مما هو عليه فعليًا.
لماذا يبقى الرابط بترتيب LTR حتى داخل صفحة RTL
معيار URL نفسه مبني على ترتيب من اليسار إلى اليمين بغض النظر عن لغة الصفحة، لذلك يعرض شريط العنوان النطاق والمسار بنفس الاتجاه دائمًا. هذا التصميم مفيد للتناسق، لكنه يفتح الباب لحيلة خطيرة: يمكن لمهاجم إدراج محارف تحكّم اتجاهي (Unicode bidi override) داخل اسم الملف أو المسار لجعل الامتداد الحقيقي لملف ضار يظهر بشكل مختلف بصريًا في اسم الرابط أو الملف المُنزَّل.
لماذا نحتاج إلى تفكيك الرابط
- فهم المضيف الحقيقي قبل النقر على رابط يحتوي نصًا عربيًا مشفّرًا.
- تفكيك رابط معقّد إلى مكوّناته لتصحيح الأخطاء أو التسجيل.
- بناء رابط صحيح برمجيًا دون أخطاء ترميز.
حيلة التصيّد باستخدام userinfo
رابط مثل https://accounts.google.com@evil.com/ يبدو وكأنه يقود إلى accounts.google.com، لكن المتصفح سيفتح فعليًا evil.com — فالجزء الذي يسبق رمز @ هو مجرد اسم مستخدم (userinfo)، وليس المضيف. تمنع بعض خدمات اختصار الروابط استخدام userinfo في الرابط تمامًا لهذا السبب.