الخلاصة
- يثبت نجاح RFC 5261 أن المحدد طابق عقدة واحدة في وثيقة XML المقدمة وأن العملية أنشأت التعديل المحدد؛ ولا يثبت أن الوثيقة هي النسخة الحالية المقصودة.
- يحتاج سجل رقعة قابل للدفاع إلى ربط بايتات الأساس وإصداره، وسياق المحدد، وكل حالة وسيطة، ونقطة الفشل، وسياسة المعاملة، والتحقق الدلالي، ثم ملاحظة التخزين والنشر النهائية.
حين يتحول المحدد إلى مدخل للهجوم
تبني خدمة إدارية تعبير sel من قيمة قدمها مستخدم. كان المقصود أن تحدد القيمة عقدة إعداد واحدة، لكن تركيبها داخل التعبير وسع المطابقة إلى جزء آخر من الشجرة. قد يرفض المعالج النتيجة إن طابقت عدة عقد، إلا أن المطابقة الوحيدة غير المقصودة تظل قادرة على النجاح.
ينبه RFC 5261 إلى أن الأمن يعتمد على التطبيق وأن إدخال XPath يحتاج إلى تنظيف، مثلا بواسطة التحقق بالمخطط. تقييد لغة XPath يقلل السطح لكنه لا يحول النص القادم من جهة غير موثوقة إلى سلطة تعديل.
السؤال الأمني ليس فقط: هل كان التعبير صالحا؟ بل أيضا: من كوّنه، وما النطاق الذي سُمح له باستهدافه، وعلى أي نسخة، وتحت أي هوية موثقة؟
التفرد داخل الشجرة ليس هوية دائمة
تحمل كل عملية سمة sel من مجموعة فرعية مقيدة من XPath 1.0، ويجب أن تصل إلى عقدة واحدة. عدم العثور على عقدة أو العثور على أكثر من واحدة خطأ. ويمكن للأسماء والمرشحات والقيم والمواضع، أو id() حين تتوافر دلالته، تضييق الاختيار.
لكن التفرد خاص بالشجرة المعطاة. إضافة شقيق تغير الفهارس الموضعية، وقد يعاد استعمال قيمة سمة، وتعتمد دالة id() على المخطط أو xml:id وعلى دعم المعالج. لا شيء من ذلك يثبت أن الشجرة هي أحدث نسخة أو أن العقدة تمثل الكيان التجاري نفسه عبر الزمن.
لذلك ينبغي أن يسجل الإيصال النص الأصلي للمحدد، وربط مساحات الأسماء بعد توسيعه، ومسار العقدة المطابقة، وبصمتها قبل التغيير، إلى جانب بصمة النسخة الأساسية ورقمها أو ETag الخاص بها.
كل عملية تعيد تعريف هدف العملية التالية
تنفذ عمليات الإضافة والاستبدال والحذف بالترتيب. وتصبح الوثيقة الناتجة من كل نجاح هدفا مستقلا للخطوة التالية. قد تزحزح الإضافة فهرسا موضعيا، وقد يدمج الحذف عقدتي نص، وقد يغير إدخال محتوى مؤهل تمثيل بادئات مساحات الأسماء.
الترتيب جزء من البرنامج وليس وصفا ملحقا به. المجموعة نفسها من العمليات، إذا أعيد ترتيبها، قد تصيب عقدا مختلفة أو تنتج وثيقة أخرى. ومن ثم لا تكفي بصمة النتيجة النهائية لفهم المسار الفعلي.
في التغييرات الحساسة، يجب حفظ رقم كل عملية وبصمة العقدة قبلها وبصمة كل وثيقة وسيطة. هذه السلسلة هي التي تكشف إعادة الترتيب أو التجاوز أو الاستمرار بعد الخطأ.
التوقف بعد الخطأ ليس معاملة تراجع عامة
يقرر RFC 5261 وجود خطأ عندما يتعذر تنفيذ عملية بلا غموض، ويقول إن مواصلة المعالجة لا تكاد تكون معقولة. كما يحدد عناصر أخطاء تفصيلية لحالات مثل العقدة غير الموجودة، ونوع العقدة غير الصالح، وفشل مساحة الأسماء، وعدم دعم المعرف.
غير أنه لا يفرض معاملة تخزين واحدة على كل تطبيق. إذا وقع الخطأ في خطوة متأخرة، فقد تكون الحالات الوسيطة السابقة بقيت في الذاكرة، أو كتبت، أو ظهرت لمستهلك آخر. قرار الالتزام أو التراجع يعود إلى البروتوكول المحيط والتنفيذ.
لذلك لا تكفي عبارة «فشلت الرقعة». يجب إرفاقها برقم العملية الفاشلة، وآخر بصمة ناجحة، وحالة الكتابة، ونتيجة التراجع أو الالتزام المرصودة.
البادئة كتابة محلية وليست هوية مساحة الاسم
للبادئات نطاق محلي. قد تستخدم وثيقة الفرق والوثيقة الهدف بادئتين مختلفتين لمساحة الاسم ذاتها، وقد يعيد المعالج كتابة البادئات عند إضافة المحتوى. ولـ RFC 5261 سلوك محدد لمساحة الاسم الافتراضية في بعض المحددات لا يجوز استبداله بحدس XPath عام.
يمكن لتغيير البادئة أن يحافظ تماما على المعنى في نموذج XML. ومع ذلك قد يتعطل مستهلك سيئ التصميم إذا عامل الكتابة بوصفها هوية. مطابقة المعالج للمواصفة وصحة المستهلك قراران منفصلان.
التكافؤ القانوني في XML ليس تكافؤا مؤسسيا
يستخدم الإطار XML القانوني مع التعليقات لتعريف التكافؤ المنطقي اللازم للمعالجة الحتمية. ويعالج النص والمسافات بعناية لأن نموذج البيانات لا يحتفظ بعقد نصية متجاورة منفصلة.
هذا لا يثبت أن الإذن أو السعر أو مرحلة سير العمل أو نطاق التوقيع بقي صحيحا. قد تكون الوثيقة سليمة البنية وصالحة بالمخطط ومستقرة بعد التطبيع، فيما تخالف قاعدة تجارية حاسمة. الحقيقة التقنية في طبقة التمثيل لا تصبح موافقة في طبقة القرار.
تاريخ الإصدارات مسؤولية التطبيق
يشير RFC إلى أن بعض التطبيقات قد تحتاج تاريخا كاملا للإصدارات، حتى للتغييرات الزائدة ظاهريا، لكنه لا يفرض سلوكا عاما. وينبه أيضا إلى هشاشة المحددات الموضعية القصيرة أمام الإضافة والحذف.
هذه حدود مسؤولية واضحة. من يحتاج ضمان النسخة الحالية يضيف بصمة مصدر أو جيلا أو ETag أو شرطا مسبقا آخر. ومن يحتاج الذرية يحدد نقطة الالتزام. ومن يحتاج المشروعية يربط هوية الفاعل ونطاق صلاحياته بالأساس المحدد.
سجل القرار الذي ينبغي الاحتفاظ به
في التحديثات ذات العواقب، احتفظ بما يلي:
- هوية الكائن الهدف، وبايتات الأساس الدقيقة، وبصمته وإصداره أو جيله؛
- بايتات وثيقة الفرق وبصمتها، ونوع الوسيط، والترميز، والمخطط، والفاعل الموثق؛
- رقم العملية المرتب، ونص المحدد، وروابط مساحات الأسماء الموسعة؛
- مسار العقدة المطابقة ونوعها وبصمتها السابقة؛
- محتوى كل عملية وبصمة كل وثيقة وسيطة؛
- عنصر الخطأ والخطوة الفاشلة وآخر حالة ناجحة؛
- سياسة التراجع أو الالتزام والنتيجة المرصودة؛
- بصمة الوثيقة النهائية والتحقق بالمخطط والتحقق الدلالي للتطبيق؛
- إقرار التخزين وحالة النسخ والملاحظة المرئية للنشر.
هذا السجل لا يمنح الرقعة سلطة. وظيفته أن يمنع تحويل «وجد المحدد عقدة» إلى ادعاء بأن الجهة وافقت على تغيير الكائن الصحيح في النسخة الصحيحة.
Sources
- https://www.rfc-editor.org/rfc/rfc5261.html
- https://www.rfc-editor.org/rfc/rfc5261.txt
- https://www.rfc-editor.org/info/rfc5261/
- https://datatracker.ietf.org/doc/rfc5261/
- https://datatracker.ietf.org/doc/rfc5261/history/
- https://datatracker.ietf.org/doc/rfc5261/references/
- https://datatracker.ietf.org/doc/rfc5261/referencedby/
- https://www.rfc-editor.org/errata/rfc5261
- https://www.rfc-editor.org/rfc/rfc7351.html
- https://www.rfc-editor.org/rfc/rfc7303.html
- https://www.rfc-editor.org/rfc/rfc3629.html
- https://www.rfc-editor.org/rfc/rfc5262.html
- https://www.w3.org/TR/1999/REC-xpath-19991116/
- https://www.w3.org/TR/2001/REC-xml-c14n-20010315
- https://www.w3.org/TR/2004/REC-xmlschema-1-20041028/
- https://www.w3.org/TR/2004/REC-xmlschema-2-20041028/
- https://www.w3.org/TR/2006/REC-xml-20060816/
- https://heng.lu/on-reality-layers-symbolic-power-and-why-clarity-feels-so-hostile/
- https://heng.lu/running-code-primary-the-patch-needed-to-preserve-the-internet-original-design/
- https://heng.lu/on-the-agency-problem-at-the-core-of-internet-governance/
إحاطة الأعضاء
سياق أعمق للملف الشخصي
سجّل الدخول بمستوى العضوية المناسب لفتح الإحاطة الكاملة وملاحظات المصادر.
للدائرة الاستراتيجية فقط
الدائرة الاستراتيجية
مفتوح لجميع القراء. افتح إحاطات الملف الشخصي بعد الانضمام وتسجيل الدخول.
انضم إلى الدائرة الاستراتيجيةلأعضاء تحالف القيادات فقط
تحالف القيادات
لأصحاب الأصول الفكرية المؤهلين وللإدارة؛ سجّل الدخول للوصول إلى إحاطات التحالف.
انضم إلى تحالف القيادات
