الخلاصة
- ينطبق RFC 5137 عندما يحتاج البروتوكول إلى تهريب بأسكي؛ وإذا أمكن حمل UTF-8 مباشرة فذلك أفضل عادة.
- يوصي بتمثيل نقطة ترميز Unicode بدلاً من تهريب ثمانيات UTF-8 أو وحدات UTF-16 بلا سبب ملزم.
- على البروتوكول أن يعرّف القواعد كاملة، بما فيها طريقة كتابة محرف بدء التهريب حرفياً.
- توضح المحددات الصريحة أين تنتهي القيمة السداسية ذات الأربع أو الخمس أو الست خانات.
- لا يحدد
\uقواعد عامة، لأن C وJava وJSON وبيئات أخرى تمنح الشكل المتشابه معاني مختلفة. - ينبغي ألا تستخدم بروتوكولات الإنترنت أزواج البدائل نموذجاً عاماً للتهريب.
- من الصيغ الموصى بها backslash-u المحددة، والمرجع العددي في XML مع الفاصلة المنقوطة النهائية.
- استرجاع نقطة ترميز صحيحة لا يثبت صحة السلسلة كلها أو تطبيعها أو صلاحيتها كمعرّف.
- قد يفشل فحص الأمان إذا نُفذ قبل فك التهريب أو بعد التطبيع في الموضع الخطأ.
- القيمة العددية والشكل المرئي ومساواة المعرّفات وربط الحساب ادعاءات منفصلة.
- يجب أن تحفظ الأدلة البايتات الأصلية وصيغة التهريب والقيم القياسية وملف المعالجة ومفتاح المقارنة والقرار.
- على القيادة أن تمنع واجهة العرض الواضحة من اكتساب سلطة على طبقات لم تقِسها.
الشاشة التي أخفت حدود المعالجة
تستقبل بوابة اسماً مكتوباً بأسكي، ثم يفك تطبيق التهريب، ويطبّع الدليل السلسلة، وتعرض لوحة الإدارة الناتج بخط معين. قد تسمي السجلات كلها الحقل نفسه، لكنها لا تتحدث عن الكائن نفسه.
ينظم RFC 5137 الحد الأول. عندما يتعذر إرسال Unicode مباشرة، تكون الإشارة إلى نقطة الترميز أوضح من إعادة كتابة بايتات UTF-8 أو وحدات UTF-16. يستطيع الإنسان الرجوع إلى جدول Unicode من دون خطوة فك إضافية، وتصبح الأخطاء أسهل في التتبع.
لكن الوثيقة تفترض أن السلسلة المراد تهريبها صالحة ومعقولة أصلاً. لا تضع قواعد عامة لمعالجة السلاسل، ولا تقرر أسماء المستخدمين أو التطبيع أو المقارنة أو العرض. لذلك تثبت نتيجة المحلل قيمة عند حد نحوي، ولا تثبت هوية صاحب الحساب.
يجب أن يسأل التحقيق: ماذا رأى كل فحص؟ هل رأى البايتات، أم حروف أسكي في التهريب، أم النقاط بعد الفك، أم مفتاحاً بعد التطبيع؟ وأي معرّف داخلي حصل على السلطة؟ من دون هذه السلسلة، لا تكفي دقة الرقم لإغلاق الواقعة.
نقطة الترميز ليست وحدات النقل
نقطة الترميز عدد في فضاء Unicode. يحولها UTF-8 إلى بايت واحد حتى أربعة، ويمثلها UTF-16 بوحدة أو وحدتين من ستة عشر بتاً. تهريب الوحدات يصف الغلاف؛ وتهريب النقطة يصف القيمة المجردة مباشرة.
إذا هُربت بايتات UTF-8 فرادى، ينقسم المحرف غير الأسكي إلى عدة أرقام. يحتاج المراجع إلى معرفة الترميز ثم إعادة البناء. وقد يختفي القطع أو الترتيب الخاطئ داخل هذه الخطوة. لهذا يفضل RFC 5137 مرجع النقطة عندما يكون الهدف تسمية المحرف.
مع ذلك تبقى البايتات دليلاً ضرورياً عند المدخل. فالقيمة النهائية لا تثبت أن UTF-8 كان صحيحاً أو في أقصر صورة أو أن المكتبة لم تُدخل محرف الاستبدال. ينبغي حفظ إيصال النقل وإيصال التفسير معاً.
أما المحارف خارج المستوى الأساسي فيمثلها UTF-16 بزوج بدائل. قد تبدو كل نصف قيمة رباعية صحيحة في لغة مضيفة، لكنها ليست قيمة قياسية مستقلة. إذا فحصت طبقة النصفين ثم جمعتهما طبقة أخرى، يظهر المحرف الفعلي بعد الفحص. لذلك لا يوصي RFC 5137 بأزواج البدائل لبروتوكولات الإنترنت.
المحدد جزء من الضبط
تمتد النقاط إلى U+10FFFF، وقد تحتاج القيمة إلى أربع أو خمس أو ست خانات. من دون نهاية ظاهرة قد يُضم محرف سداسي تالٍ إلى العدد، أو تفترض تطبيقات مختلفة أطوالاً مختلفة.
تقترح إحدى الصيغ backslash-u صغيراً ثم أرقاماً بين علامتي اقتباس مفردتين. وتستخدم الأخرى مرجع XML العددي مع فاصلة منقوطة في النهاية. حذفها في شكل شبيه بـHTML يزيل فائدة النهاية الواضحة. كما يجب تعريف طريقة كتابة backslash أو علامة العطف حرفياً.
لا تفرض الوثيقة علامة واحدة لكل السياقات. المهم هو اكتمال العقد: البداية، وعدد الخانات، وحالة الأحرف، والنهاية، والمدى المسموح، والحروف الحرفية، وسلوك الخطأ.
تختبر المطابقة حدود الأربع والخمس والست خانات، والخانة السداسية التالية، والنهاية المفقودة، ومدى البدائل، والقيم فوق الحد، والمدخل المقطوع. ويجب أن تتفق تطبيقات مستقلة على الرفض كما تتفق على القبول.
لماذا لا يكفي الشكل \u
تستخدم C صيغاً مختلفة الطول والحالة. وتعد Java الأربع خانات وحدة UTF-16. ويستخدم JSON الشكل الرباعي وزوجاً لبعض المحارف. وتستعمل لغات أخرى أقواساً أو طولاً متغيراً. التشابه البصري لا يبين نوع الشيء الذي يمثله العدد.
كل قاعدة قد تكون سليمة في سياقها. يظهر الخلل عندما تصف واجهة عامة الحقل بأنه «تهريب Unicode» فقط. قد يرسل المنتج وحدة UTF-16 بينما يتوقع المستهلك نقطة ترميز. تنجح اختبارات المستوى الأساسي وتنكشف المشكلة مع المحارف الإضافية.
يملك RFC 8259 قواعد JSON، ثم يشدد I-JSON التوافق بطلب قيم قياسية صحيحة وتجنب البدائل غير المزدوجة. الضبط يأتي من عقود مسماة ومتراكبة، لا من مألوفية ثلاثة رموز.
في الترحيل يجب تمييز الشكل القديم والجديد قبل الفك، بإصدار أو حقل أو قواعد مختلفة. وتحدد القياسات المنتج الذي يستخدم كل عقد. وإلا تحولت المرونة المؤقتة إلى غموض دائم لا يمكن سحبه.
يبدأ التطبيع بعد نجاح الفك
قد تكون سلسلتان مختلفتان من النقاط متكافئتين معيارياً. يعرّف UAX #15 صور NFC وNFD وNFKC وNFKD. ويختار RFC 5198 UTF-8 وNFC لـNet-Unicode. ويطلب نموذج W3C تحديد الصور المقبولة والمنتجة والمقارنة.
لا يختار التهريب الواضح أياً منها. قد يسترجع سلسلة دقيقة لكنها تحتاج التطبيع أو يرفضها ملف الحقل. صحة القواعد وصحة القيمة والتطبيع وصلاحية الاستخدام اختبارات متتابعة.
ترتيبها خاصية أمنية. قد يمر الشكل العددي من مرشح يعمل قبل الفك. وقد تقبل فريدة قبل التطبيع ثم تتصادم مع سجل آخر بعد NFC. وقد يطبع العرض فقط، فيرى الإنسان اسمين متساويين بينما تتعامل الصلاحيات معهما كاسمين مختلفين.
يذكر إيصال التطبيع الصورة وإصدار Unicode والمكتبة وموضع التنفيذ والمدخل والمخرج. كما يجب تحديد مرحلة حساب الطول وتحويل الحالة. كلمة «مطبّع» وحدها غامضة مثل \u بلا مالك للقواعد.
من النص إلى المعرّف ثم إلى السلطة
يوفر PRECIS أصنافاً وملفات للمعرّفات الدولية والنصوص الحرة، مع قواعد سياقية وتطبيع ومقارنة. ويعرّف IDNA فئات وأحكام NFC والعلاقة بين A-label وU-label في DNS. تبدأ هذه السياسة بعد استرجاع النقاط.
قد تكون القيمة صحيحة في Unicode وممنوعة في حقل معين. وقد تعتمد الإباحة على الجوار أو نظام الكتابة أو الإصدار. وتحتاج تسمية DNS إلى تحويل وتحقق عكسي. لا يثبت المرجع العددي التسجيل أو الملكية أو الوجهة.
التشابه المرئي طبقة أخرى. يمكن لقيم مختلفة أن تنتج أشكالاً متقاربة، ويتغير العرض مع الخط والتشكيل والاتجاه. يساعد إظهار الرقم المحقق، لكنه لا يمنع المستخدم من الخلط بين التسميات.
تحتاج المعرّفات الحساسة إلى مخزون محارف وسياسة كتابة وفحص المتشابهات ومعالجة التصادم واسترداد لا يعتمد على الاسم الظاهر. تربط الصلاحيات بمعرّف داخلي ثابت، ويبقى الاسم الدولي صفة قابلة للمراجعة.
سلسلة أدلة لا لقطة واحدة
عند الدخول تُحفظ البايتات والترميز والقناة. وفي المحلل تُحفظ الصيغة والقواعد والخطأ. ثم القيم القياسية. وبعد الملف تُحفظ نسخة Unicode والتطبيع والقواعد السياقية ومفتاح المقارنة. وفي التفويض يُحفظ صاحب الصلاحية والمورد والسياسة والنتيجة.
إذا كان الحكم بشرياً، تُسجل أيضاً اللغة والاتجاه والخط ومحرك التشكيل. تثبت لقطة الشاشة الشكل ولا تثبت السلسلة المخزنة؛ ويثبت السجل الخام البيانات ولا يثبت ما رآه الإنسان. يجب ربطهما.
تعبر اختبارات الطرفين Java وJSON وخدمات UTF-8 وقاعدة البيانات والعميل الفعلي. وتشمل المحارف الإضافية والتراكيب والنص ثنائي الاتجاه والمحارف الحرفية والمدخلات الممنوعة. الاستبدال الصامت تغيير هوية، وليس نجاحاً.
بهذا يمكن تحديد التحويل الذي اختلف، بدلاً من اتهام Unicode كله. ولا تصبح لوحة الإدارة صاحبة سلطة على واقع لم ترصده.
معيار نحيف ومسؤولية محلية واضحة
تكمن فائدة RFC 5137 في ضيقه. فهو يحسن مرجع نقطة الترميز عبر حد أسكي، ولا يدعي أنه سجل أو نظام هوية أو تفويض. وتبقى سياسات المحتوى لبروتوكولات المجال.
يمتلك فريق البروتوكول القواعد، وفريق التشغيل القيم القياسية، وفريق التدويل التطبيع والملف، والمنتج المساواة والتصادم، والأمن ترتيب الفحوص والتشابه، والتفويض الربط بصاحب ثابت.
الخطر الثاني هو أن تكتسب أوضح شاشة حق تفسير كل شيء. يتحول الرقم الصحيح إلى حساب صحيح، والشكل المتوقع إلى بيانات متساوية. الحقيقة المحلية تصبح وهماً عاماً عند حذف حدودها.
يوفر RFC 5137 أول إيصال جيد. ولا تكتمل الهوية حتى تُثبت الإيصالات التالية.
المصادر
- RFC 5137 بصيغة HTML
- RFC 5137 كنص
- سجل RFC 5137
- RFC 5137 في IETF Datatracker
- تاريخ وثيقة RFC 5137
- البحث في تصويبات RFC 5137
- RFC 3629: UTF-8
- RFC 2781: UTF-16
- RFC 5198: Net-Unicode
- RFC 6365: مصطلحات التدويل
- RFC 2277: سياسة اللغات ومجموعات المحارف
- RFC 8259: JSON
- RFC 7493: I-JSON
- RFC 8264: إطار PRECIS
- RFC 5890: تعريفات IDNA
- RFC 5891: بروتوكول IDNA
- الملحق 15 من معيار Unicode
- نموذج المحارف لدى W3C
- المواصفة الأولية الدنيا والقرار المحلي المستقبلي والتبني الطوعي
- حول طبقات الواقع والسلطة الرمزية ولماذا يبدو الوضوح عدائياً
- Running-Code Primary
إحاطة الأعضاء
سياق أعمق للملف الشخصي
سجّل الدخول بمستوى العضوية المناسب لفتح الإحاطة الكاملة وملاحظات المصادر.
للدائرة الاستراتيجية فقط
الدائرة الاستراتيجية
مفتوح لجميع القراء. افتح إحاطات الملف الشخصي بعد الانضمام وتسجيل الدخول.
انضم إلى الدائرة الاستراتيجيةلأعضاء تحالف القيادات فقط
تحالف القيادات
لأصحاب الأصول الفكرية المؤهلين وللإدارة؛ سجّل الدخول للوصول إلى إحاطات التحالف.
انضم إلى تحالف القيادات
