الخلاصة
- يحدد RFC 9839 ثلاث مجموعات متزايدة التقييد يمكن الاستشهاد بها بدقة: Unicode Scalars وXML Characters وUnicode Assignables.
- قد يكون مستند JSON مطابقاً للنحو، ثم ينتج بعد فك الهروب محرف تحكم أو surrogate منفرداً أو نقطة noncharacter؛ لذلك لا يثبت نجاح التحليل صلاحية القيمة.
- الدليل التشغيلي يتطلب قاعدة لكل حقل، وقراراً معلناً بالرفض أو الاستبدال، ونتيجة واحدة عبر البوابة والتخزين والسجل والتصدير والمستهلك.
المؤشر الأخضر كان صحيحاً ضمن نطاق ضيق. عرف المحلّل الأقواس والاقتباسات وتسلسلات الهروب، لكنه لم يقرر هل تصلح القيمة لتكون معرّف عميل، أو جزءاً من توقيع، أو نصاً يمكن إصداره في UTF-8. حين ظهر surrogate بلا قرين، اتضح أن نجاح الغلاف لا يمنح المحتوى سلطة الدخول.
نُشر RFC 9839 على مسار Standards Track في أغسطس 2025. وتعرض صفحته الرسمية ونسخة النص ومصدر XML الحدود الثلاثة نفسها. هذا يثبت المواصفة، لا انتشار التنفيذ ولا سلامة أي منتج.
ثلاث مجموعات تعني ثلاثة حدود
تستبعد Unicode Scalars النطاق U+D800–U+DFFF الذي يضم 2,048 نقطة surrogate، لكنها تبقي ضوابط قديمة وnoncharacters. وتستبعد XML Characters معظم ضوابط C0 القديمة وU+FFFE وU+FFFF أيضاً، من دون استبعاد كل ضوابط C1 أو noncharacters في المستويات الأعلى. أما Unicode Assignables فتستبعد surrogates والضوابط القديمة وكل noncharacters، مع إبقاء ما عُيّن أو قد يُعيّن مستقبلاً.
يعرف معيار Unicode فضاء الترميز، ويشرح UAX 44 خصائصه. ويحدد RFC 3629 UTF-8، بينما يضع RFC 2277 سياسة اللغات والمحارف في بروتوكولات الإنترنت. لكن الترميز يحدد تحويل القيم المقبولة إلى بايتات، ولا يقرر ما يقبله حقل بعينه.
يسمح وصف الحدود عبر ABNF بعقد ثابت بدلاً من عبارة غامضة مثل «Unicode صالح». ويظل تعريف XML 1.0 ملفاً تاريخياً معروفاً، لا حلاً شاملاً لأمن النص.
الهروب لا يغيّر المحتوى
يحدد RFC 8259 وسجله صيغة JSON. يقدم RFC 9839 مثالاً مطابقاً يحتوي بعد الفك على NUL وضابط C1 وsurrogate منفرد وnoncharacter. لا يمكن إخراج القيمة في UTF-8 سليم، وقد تختلف المكتبات في التعامل معها.
كتابة نقطة الترميز بتسلسل هروب تغيّر تمثيلها فقط. يجب تطبيق مجموعة القبول بعد فك الهروب وقبل إدخال القيمة إلى الحالة الموثوقة. المحلّل العام لا يعرف هل الحقل للعرض أم للهوية أم للتحكم في الوصول أم للدليل.
توضح I-JSON وNet-Unicode وPRECIS أن الأغراض المختلفة تحتاج ملفات مختلفة. حتى Unicode Assignables لا تعالج التطبيع أو تشابه الأشكال أو الاتجاه الثنائي أو القواعد السياقية.
الرفض والاستبدال يحميان شيئين مختلفين
يمنع الرفض القيمة الغامضة من أن تصبح سجلاً معتمداً. وقد يحافظ الاستبدال بـ U+FFFD على مسار العرض ويكشف موضع التلف، لكنه يفقد الهوية الدقيقة. وهذا غير مقبول داخل توقيع أو hash أو مفتاح إزالة تكرار أو قرار صلاحية أو وثيقة قانونية إذا ادعى النظام أنه احتفظ بالأصل.
الحذف الصامت أخطر؛ فقد يجعل سلسلتين مختلفتين متطابقتين ويقطع الصلة بين ما استُقبل وما دُوّن. ينظر RFC 9413 إلى المتانة بوصفها معالجة مقصودة للمدخل غير الصالح، لا قبولاً بلا حدود.
حتى الرفض يحتاج تصميماً للتوافر. التشخيص المكلف قد يصبح أداة ضغط. تحديد المعدل، والرسائل القصيرة، والحجر، وحفظ العينة الأصلية قرارات محلية يحمل المشغل نتائجها.
سلسلة التشغيل هي الإيصال
ينبغي تمرير المتجهات نفسها عبر البوابة والمحلّل والمدقق والوسيط وبرنامج قاعدة البيانات والتخزين والسجل والتصدير والمستهلك. تفصل القياسات بين فشل النحو، ومخالفة المجموعة، والاستبدال المقصود، وفشل التسلسل لاحقاً. وتقارن تسلسل القيم، والقرار، وفئة الخطأ، والصورة المحفوظة.
تستخدم نصوص CBOR قيم Unicode scalar افتراضياً؛ فتغلق باب surrogates ولا تغلق كل الضوابط وnoncharacters. تغيير الحاوية لا يلغي سياسة الحقل.
يتناول TR36 أمن Unicode الأوسع، ويركز TR55 على الشفرة المصدرية، ويفرق W3C بين المحرف ونقطة الترميز ووحدة الترميز والبايت. هذه القضايا تحدد أيضاً ما لا يدعي RFC 9839 حله.
لم يختبر هذا التقرير مكتبة أو قاعدة بيانات أو مسار إنتاج، ولا يقدم معدل اعتماد. الاستنتاج المؤيد بالأدلة محدود: المحلّل ينسق النحو ولا يملك سلطة قبول المحتوى. ولا يصبح القرار مثبتاً إلا عندما تعطي المكونات العاملة نتيجة واحدة قابلة للتدقيق.
المصادر
إحاطة الأعضاء
سياق أعمق للملف الشخصي
سجّل الدخول بمستوى العضوية المناسب لفتح الإحاطة الكاملة وملاحظات المصادر.
للدائرة الاستراتيجية فقط
الدائرة الاستراتيجية
مفتوح لجميع القراء. افتح إحاطات الملف الشخصي بعد الانضمام وتسجيل الدخول.
انضم إلى الدائرة الاستراتيجيةلأعضاء تحالف القيادات فقط
تحالف القيادات
لأصحاب الأصول الفكرية المؤهلين وللإدارة؛ سجّل الدخول للوصول إلى إحاطات التحالف.
انضم إلى تحالف القيادات
