كل المقالات

Punycode: كيف تعمل النطاقات الدولية في DNS

النطاق المصري .مصر موجود في DNS الفعلي باسم xn--wgbh1c — وهو مثال واضح على أن النص العربي، رغم كونه من اليمين إلى اليسار بصريًا، يُشفَّر بنفس آلية Punycode المستخدمة لأي أبجدية أخرى غير لاتينية.

كيف يتعامل الترميز مع اتجاه الكتابة العربية

خوارزمية Punycode لا تهتم إطلاقًا باتجاه عرض النص؛ فهي تتعامل فقط مع تسلسل نقاط الرموز (code points) كما هي مخزَّنة داخليًا، بغض النظر عن كون العرض النهائي من اليمين إلى اليسار. لذلك يبقى الناتج المشفَّر بصيغة xn-- دائمًا بترتيب من اليسار إلى اليمين في شريط العنوان، حتى عندما يكون النطاق الأصلي عربيًا بالكامل — وهذا التناقض بين اتجاه الصفحة واتجاه الرابط هو ما يجعل بعض الروابط المزيّفة يصعب تمييزها بصريًا.

لماذا لم يُستبدل DNS ببساطة بترميز UTF-8

تعديل DNS ليقبل UTF-8 مباشرة كان سيتطلّب تحديثًا متزامنًا لكل خوادم الأسماء في العالم. يتجنّب Punycode هذه المشكلة: يكفي أن يفهم المتصفح ومسجّل النطاقات الترميز فقط، بينما تبقى بنية DNS الأساسية ترى ASCII فقط.

حالات الاستخدام الشائعة

  • التحقق من النطاق الحقيقي المختبئ خلف سلسلة xn--... غامضة في بريد إلكتروني أو رابط.
  • تحويل نطاق بأحرف عربية إلى صيغة Punycode قبل إعداده في لوحة DNS لا تقبل إلا ASCII.
  • تشخيص مشاكل IDN في الشهادات أو عناوين البريد الإلكتروني.

هجوم التشابه البصري يهدد العلامات التجارية أيضًا في السياق العربي

الحرف السيريلي "а" لا يمكن تمييزه عن الحرف اللاتيني "a" في معظم الخطوط، ويستغل المهاجمون ذلك لتسجيل نطاقات مثل "аpple.com" التي يُرمِّزها Punycode إلى سلسلة xn-- فريدة لكنها تبدو كعلامة تجارية شرعية. عندما يمزج نطاق ما بين أبجديات بطريقة مشبوهة، تعرض المتصفحات الحديثة صيغة xn-- الخام مباشرة بدلاً من فك ترميزها.

جرّب الأداة