ما هو IDN؟
اسم النطاق المدوّل (IDN) هو اسم نطاق يحتوي على أحرف خارج مجموعة ASCII التقليدية المستخدمة في مواصفة DNS الأصلية. تتيح IDNs أسماء نطاقات بالخطوط الأصلية مثل الصينية (中文.com) والعربية (مثال.com) والسيريلية (пример.com) وغيرها الكثير.
لماذا تهم IDNs؟
صُمم DNS الأصلي للناطقين بالإنجليزية، فاقتصر على:
- الأحرف a-z (من دون تمييز حالة الأحرف)
- الأرقام 0-9
- الشرطات (لا تأتي في البداية أو النهاية)
استبعد ذلك مليارات الأشخاص الذين لا تستخدم لغاتهم الأبجدية اللاتينية. وتُسهم IDNs في جعل الإنترنت متاحاً للجميع من خلال:
- عناوين باللغة الأصلية: يستطيع المستخدمون كتابة عناوين URL بلغتهم
- حماية العلامة التجارية: يمكن للشركات تأمين أسماءها بعدة خطوط
- إتاحة ثقافية: تقليل حاجز المشاركة في الإنترنت
كيف تعمل النطاقات المدوّلة (IDNs): الصلة بترميز Punycode
لا تفهم بنية نظام DNS التحتية إلا أحرف ASCII، لذلك تستخدم أسماء النطاقات المدوّلة (IDNs) نظام ترميز ذكيّاً يسمى Punycode لتمثيل النص العربي أو غيره بصيغة قابلة للحل. عند تسجيل IDN أو الوصول إليه:
1. يكتب المستخدم: 中文.com (الصينية لكلمة «صيني»)
2. يُرمّز المتصفح: xn--fiq228c.com (تمثيل Punycode)
3. يحل DNS الاسم: بحث ASCII قياسي
4. يعرض المتصفح: 中文.com (الصيغة الأصلية)
تشير البادئة «xn--» إلى سلسلة مرمّزة بـ Punycode. وتحدث هذه العملية بشفافية للمستخدمين.
أمثلة على Punycode
| اسم النطاق المدوّل (IDN) | تمثيل Punycode المقابل |
|---|---|
| اسم نطاق مدوّل باللغة الألمانية: münchen.de | تمثيل Punycode المقابل في DNS: xn--mnchen-3ya.de |
| اسم نطاق مدوّل باللغة الصينية: 中文.com | تمثيل Punycode المقابل في DNS: xn--fiq228c.com |
| اسم نطاق مدوّل باللغة الروسية: правда.рф | تمثيل Punycode المقابل في DNS: xn--80aafi6cg.xn--p1ai |
دعم IDN عبر نطاقات TLD
يختلف دعم IDN حسب TLD:
دعم كامل
تدعم معظم نطاقات المستوى الأعلى العامة (gTLDs) الحديثة وكثيراً من نطاقات رموز البلدان (ccTLDs) أسماء النطاقات المدوّلة (IDN):
- نطاقات .com و.net و.org، التي تديرها شركة Verisign، تدعم أسماء النطاقات المدوّلة
- النطاق .de، مع أحرف ألمانية، يدعم أسماء النطاقات المدوّلة
- النطاق .jp، مع أحرف يابانية، يدعم أسماء النطاقات المدوّلة
- النطاق .cn، مع أحرف صينية، يدعم أسماء النطاقات المدوّلة
نطاقات TLD مدوّلة
بعض نطاقات TLD نفسها مدوّلة:
- .рф (روسيا، بالسيريلية)
- .中国 (الصين)
- .भारत (الهند، بالديفاناغارية)
- .السعودية (السعودية، بالعربية)
دعم محدود أو معدوم
تقيّد بعض نطاقات TLD أسماء IDN أو لا تدعمها إطلاقاً. تحقّق دائماً من دعم IDN لنطاق TLD المستهدف.
اعتبارات أمنية: هجمات التشابه
تقدم IDNs مخاطر أمنية عبر هجمات التشابه، حيث تنشئ أحرف متشابهة بصرياً من خطوط مختلفة نطاقات خادعة:
apple.com (legitimate - Latin letters)
аpple.com (attack - Cyrillic 'а' looks like Latin 'a')
الحماية من هجمات التشابه
سلوك المتصفح: تعرض المتصفحات الحديثة Punycode لنطاقات IDN المشبوهة بدلاً من صيغة Unicode، فتكشف الهجوم. سياسات السجل: تقيّد بعض السجلات مجموعات الأحرف التي يمكن دمجها في نطاق واحد. مراقبة النطاقات: تستطيع أدوات مثل كشف typosquatting في DomScan تحديد المتغيرات المسجلة المتشابهة مع علامتك التجارية.تطبيق دعم IDN
للمطورين الذين يبنون أدوات النطاقات:
التحقق
// Check if domain contains non-ASCII
function isIDN(domain) {
return /[^\x00-\x7F]/.test(domain);
}
التحويل
// Convert to Punycode for DNS queries
const punycode = require('punycode/');
const ascii = punycode.toASCII('中文.com'); // xn--fiq228c.com
const unicode = punycode.toUnicode('xn--fiq228c.com'); // 中文.com
استعلامات RDAP
تقبل معظم خوادم RDAP الصيغتين:
# Both work
curl "https://rdap.verisign.com/com/v1/domain/xn--fiq228c.com"
curl "https://rdap.verisign.com/com/v1/domain/中文.com"
أفضل الممارسات
عند التعامل مع IDNs:
1. عالج صيغة Punycode وخزّنها دائماً داخلياً
2. اعرض صيغة Unicode للمستخدمين
3. طبّق كشف هجمات التشابه ضمن ميزات الأمان
4. تحقّق من سياسات IDN الخاصة بكل TLD قبل التسجيل