الخلاصة
- يعرّف RFC 5147 مواضع ونطاقات للحروف أو الأسطر داخل كيانات MIME من نوع
text/plain. - يفسر العميل الجزء بعد جلب التمثيل؛ ولا يستخدمه الخادم لحل المورد أو إرجاعه.
- يبدأ عد الموضع من الصفر، والموضع حد عديم الطول وليس اقتباساً قائماً بذاته.
- يجري عد الحروف بعد فك الترميز، ولذلك لا تتطابق البايتات دائماً مع نقاط الترميز أو الرموز المرئية.
- تُحسب كل نهاية سطر معروفة حرفاً واحداً، سواء مُثلت بـ CRLF أو LF أو CR أو صيغة أخرى.
- إذا تجاوز الموضع طول الكيان فإنه ينتهي عند آخر موضع، من دون إثبات بقاء النص المقصود.
- يجب تجاهل البنية الخاطئة والنطاق المعكوس، ولا يجوز للعميل تخمين إصلاحهما.
- يوفر
lengthوmd5فحصين اختياريين للكيان بعد إزالة ترميزات النقل. - يمكن للعميل تجاهل الفحوص كلها، وقد يمنع اختلاف charset استخدامها أو يجعل التحويل غير موثوق.
- يستطيع MD5 كشف بعض التغير العارض، لكنه ليس توقيعاً ولا هوية للناشر ولا دليلاً حديثاً مقاوماً للتصادم.
- قد يخفي عرض الجزء وحده الشروط المحيطة أو المجال الأمني ويصنع انطباعاً مضللاً.
- يحتاج القرار المهم إيصالات منفصلة للنسخة والكيان وفك الترميز والسياق والناشر والسلطة والنتيجة.
لم يحتج التضليل إلى تزوير الملف
كانت الأسطر أصلية، وكان النطاق مطابقاً، وكان المورد صادراً من موقع صحيح. لكن واجهة أخرى عرضت الجزء بلا حدود مرئية وبلا السطر الذي يقيّد تطبيقه. تحولت حقيقة موضعية إلى استنتاج شامل.
يتوقع قسم الأمن في RFC 5147 هذا النوع من الخطر. اختلاف دعم العملاء وطريقة إظهار الجزء قد يخلق سوء فهم يشبه التصيد أو الانتحال. ويمكن لإظهار الجزء وحده أن يخفي نصاً قانونياً صغيراً أو ينقل مادة شبيهة بعلامة ثقة إلى سياق زائف.
الدقة التقنية للاختيار لا تكفي إذا كان إطار العرض غير أمين. أصالة المستند، وصحة النطاق، وكفاية السياق، وهوية الجهة العارضة خصائص مستقلة.
ما بعد علامة # قرار محلي
لا يرسل العميل الجزء إلى الخادم ليعتمد معناه. يحل URI ويجلب تمثيلاً أولاً، ثم يستخدم نوع الوسائط لاختيار قواعد الجزء محلياً. مع text/plain تأتي القواعد من RFC 5147.
يسمح ذلك بالنشر التدريجي. عميل لا يدعم المعيار يفتح الملف الكامل، لكنه لا يحدد الموضع. من منظور الإتاحة نجح الرابط؛ ومن منظور الاستشهاد فشل. لذلك يجب ألا يجمع السجل الحالتين في قيمة واحدة.
سجل الخادم لا يعيد بناء ما رآه القارئ. لا يعرف دائماً charset الفعلي في العميل، أو سياسة نهايات الأسطر، أو تطبيق فحص السلامة، أو ما إذا كان الموضع خارج النطاق، أو مقدار السياق الظاهر.
الإحداثي يولد بعد فك الترميز
يجمع المعيار بين حرف أو سطر وبين موضع أو نطاق. الموضع صفر يسبق أول عنصر. الموضع منفرداً حد طوله صفر، أما النطاق فيمتد بين حدين.
لا يعني char= إزاحة بايت. يستخدم UTF-8 عدداً متغيراً من البايتات، ولـ UTF-16 قواعد أخرى، ولا تُعد علامة ترتيب البايت الأولى حرفاً. وقد يظهر الرمز البشري نفسه كنقطة ترميز مركبة أو كسلسلة من أساس وعلامة تشكيل.
يمكن للأرشيف أو البوابة أن يحافظ على الشكل المرئي ويغير كل المواضع التالية. لذلك يلزم حفظ charset المعلن والمستخدم، وسياسة التطبيع، وبصمة الكيان بعد فك الترميز.
نهايات الأسطر طبقة أخرى. صيغة الإنترنت المعتادة CRLF، لكن الملفات المحلية والبروتوكولات قد تعرض LF أو CR أو NEL. كل نهاية معروفة تُحسب حرفاً واحداً، إلا أن التنفيذ يحتاج معرفة القاعدة المناسبة للسياق.
الوصول إلى النهاية ليس العثور على الهدف
إذا زادت قيمة الموضع على طول الكيان، يشير RFC 5147 إلى آخر موضع. هذه نتيجة محددة، لا شهادة بأن الفقرة القديمة ما زالت موجودة.
قد يتحول رابط إلى السطر 900 بعد اختصار الوثيقة إلى 50 سطراً إلى انتقال ناجح نحو النهاية. إذا راقب النظام غياب الخطأ فقط، فسيسجل حذف المحتوى كنجاح. يجب تسجيل تقييد الموضع خارج النطاق وإيقاف القرار.
النطاق المفتوح يتغير أيضاً مع نمو الملف. غياب البداية يعني من أول الكيان، وغياب النهاية يعني حتى آخره. قد تدخل إضافات لم يراجعها منشئ الرابط في الاختيار نفسه.
أما النطاق المعكوس أو الصياغة غير الصحيحة فيجب تجاهلهما من دون تصحيح تخميني. هذا يحمي قابلية التكرار، لكن على الواجهة أن تقول إن الجزء فشل بدلاً من عرض الملف الكامل بصمت.
فحص السلامة ليس سلطة
يمكن إضافة length أو md5. يصف المعيار الطول بأنه فحص ضعيف جداً. ويحسب MD5 على التمثيل الثنائي لكيان MIME بعد إزالة ترميز المحتوى أو النقل.
الفحوص اختيارية التنفيذ؛ يستطيع العميل تجاهلها. إذا نفذ فحصاً وكشف تغيراً، ينبغي ألا يفسر الجزء ويمكنه إبلاغ المستخدم. لا تفرض السلسلة نفسها سياسة إيقاف موحدة على كل المنتجات.
قد يحدد الفحص charset. إذا اختلف عن الكيان المسترجع فلا يجوز استخدامه مباشرة. يمكن التحويل أولاً، لكن المعيار يحذر من فقد الحروف أو تطبيعها.
ثم يضع RFC 6151 الحد الأمني: MD5 غير مناسب عندما تلزم مقاومة التصادم، وغير مقبول للتوقيعات الرقمية. التطابق قد يساعد في سؤال «هل هذا الكيان نفسه وفق المعالجة المحددة؟» ولا يجيب عن «من أصدره؟» أو «هل يملك سلطة إصداره؟».
نوع الوسائط هو مفتاح التفسير
ليست line= وchar= قواعد عامة لكل مورد. تعملان عندما يكون التمثيل text/plain. بعض البيئات لا توفر نوعاً صريحاً، فيخمن العميل؛ ويسمي RFC 5147 ذلك غير موثوق بطبيعته.
امتداد .txt ليس إثبات MIME. قد يحمل URI من نوع file: أعرافاً محلية مختلفة، وقد يفتقر FTP إلى بيانات يقدمها HTTP. يجب حفظ النوع المعلن والنوع الفعلي وأساس أي استدلال.
يسجل IANA ارتباط RFC 5147 بـ text/plain. هذا دليل تخصيص وتنسيق، وليس قياساً لدعم المتصفحات أو صحة تنفيذ بعينه. السجل المؤسسي ليس حساس تشغيل.
إيصال يحفظ السياق
ينبغي أن يتضمن الإيصال URI الكامل، ووقت الجلب، ومتحققات الاستجابة، ونوع الوسائط، وcharset، وبصمة الكيان المفكوك، وسياسة الأسطر، وسلسلة الجزء، وإصدار العميل، وحالة الخروج عن النطاق، والنص المختار وما حوله.
إذا كانت هوية المصدر مهمة، يلزم توقيع أو نسخة أرشيفية غير قابلة للتغيير وسلسلة منشأ منفصلة. وإذا كان القرار قانونياً أو أمنياً أو تشغيلياً، يلزم إثبات مستقل أن الجهة صاحبة النص تملك حق إصدار التعليمات.
المصادر
- RFC 5147 بصيغة HTML
- نص RFC 5147
- سجل RFC Editor
- سجل IETF Datatracker
- تاريخ الوثيقة
- بحث أخطاء RFC 5147
- RFC 6838: مواصفات أنواع الوسائط
- RFC 2046: أنواع MIME
- RFC 3986: البنية العامة لـ URI
- RFC 3987: المعرفات الدولية
- RFC 3629: UTF-8
- RFC 1321: MD5
- RFC 6151: اعتبارات أمن MD5
- RFC 9110: دلالات HTTP
- RFC 8089: مخطط file URI
- سجل IANA لأنواع الوسائط
- W3C Media Fragments URI 1.0
- Minimum Initial Specification, Localized Future Decision, and Voluntary Adoption
- On Reality Layers, Symbolic Power, and Why Clarity Feels So Hostile
- Running-Code Primacy
إحاطة الأعضاء
سياق أعمق للملف الشخصي
سجّل الدخول بمستوى العضوية المناسب لفتح الإحاطة الكاملة وملاحظات المصادر.
للدائرة الاستراتيجية فقط
الدائرة الاستراتيجية
مفتوح لجميع القراء. افتح إحاطات الملف الشخصي بعد الانضمام وتسجيل الدخول.
انضم إلى الدائرة الاستراتيجيةلأعضاء تحالف القيادات فقط
تحالف القيادات
لأصحاب الأصول الفكرية المؤهلين وللإدارة؛ سجّل الدخول للوصول إلى إحاطات التحالف.
انضم إلى تحالف القيادات
