الخلاصة

  • يضع RFC 10025 ملفًا منضبطًا للجهة المنتجة وقواعد أكثر تسامحًا للجهة المستهلكة. ومع ذلك يجوز لوكيل المستخدم تجاهل تعليمة Set-Cookie أو رفضها أو تطبيعها أو استبدالها أو حذفها قبل الطلب التالي.
  • وجود السجل في المخزن لا يوجب إرساله، وإرساله لا يمنح التفويض. يجب أن يربط سجل دورة الحياة الأحكام المنفصلة من دون نسخ قيمة ملف الارتباط أو سر الجلسة.

في واقعة تشغيلية افتراضية، أعاد نظام الدخول الاستجابة المتوقعة عبر قناة مشفرة، وظهرت سطرا Set-Cookie بترتيبهما في الالتقاط. أغلق فريق الإصدار الفحص على أنه نجاح. جاء الطلب التالي من دون معرّف جلسة، بينما حمل طلب آخر قيمتين لهما الاسم نفسه.

لا يثبت ذلك فقدًا في الشبكة. ربما رفض وكيل المستخدم شرطًا خاصًا بالبادئة، أو طبّق سياسة محلية، أو استبدل سجلًا قديمًا بالسجل الجديد. وربما انتهت مدة السجل أو أزيل عند نهاية الجلسة أو خرج بسبب حد السعة. وقد يبقى محفوظًا لكنه لا يطابق نطاق المضيف أو المسار أو القناة الآمنة أو سياق SameSite للطلب اللاحق.

يوضح RFC 10025 هذه الحدود. فهو معيار IETF صدر في يوليو 2026 على مسار المعايير وحل محل RFC 6265. تحمل الاستجابة الاسم والقيمة والسمات في Set-Cookie؛ أما الطلب اللاحق فيحمل الأزواج التي اختيرت في Cookie. لا يحمل الطلب إقرارًا بأن كل تعليمة قُبلت ولا يعيد تاريخ التخزين.

المنتج والمستهلك لا يؤديان الدور نفسه

ينصح النص منتجي ملفات الارتباط بالتزام ملف ضيق حسن السلوك. ويلزم المستهلكين بقواعد معالجة أوسع حتى يتعاملوا مع خوادم قائمة لا تلتزم ذلك الملف. هذه لا تماثل بين الطرفين؛ إنها تسوية للتشغيل البيني.

لذلك يثبت فحص الخادم سلامة ما أُرسل فقط. لا يكشف محرك الاستهلاك أو إصدار السياسة أو سياق تلقي الاستجابة أو الفرع الذي سلكته خوارزمية التخزين. بل تسمح الخطوة الأولى لوكيل المستخدم بتجاهل ملف الارتباط كله. كلمة «استلم» تصف مدخلًا إلى المعالجة، لا نتيجة القبول.

وتتوزع المسؤولية بدورها. يختار التطبيق تعليمة الاستجابة. تنقل طبقة HTTP الأسطر من دون دمج غير صحيح. يفسر وكيل المستخدم ويحفظ. قد يغيّر المستخدم أو مدير الجهاز السياسة. ينشئ الانتقال أو المستند المضمّن أو العامل أو الواجهة غير HTTP سياق الاسترجاع التالي. ثم يقرر التطبيق مستقبل الطلب صلاحية الجلسة والإذن.

القبول يبني حالة محلية جديدة

ترفض الخوارزمية محارف التحكم المحظورة، والاسم والقيمة إذا تجاوز مجموعهما الحد، والنطاق غير المقبول، وبعض تراكيب السمات والبادئات. لا يُقبل SameSite=None من دون Secure. ولا تكتسب أسماء __Secure- و__Host- معناها إلا عند تحقق شروطها. ويفحص وكيل المستخدم البادئة من دون تمييز حالة الأحرف حتى لا تتحول طريقة مقارنة ضعيفة في الخادم إلى ضمان زائف.

يتكون السجل المقبول من الاسم والقيمة ووقت الانتهاء الفعلي والنطاق والمسار ووقتي الإنشاء وآخر وصول، مع أعلام الاستمرار والحصر في المضيف والأمان وHttpOnly وSameSite. تتقدم Max-Age على Expires. ويؤدي غياب Domain إلى نطاق خاص بالمضيف. ولا يحدد الاسم وحده الاستبدال؛ بل يحدده الاسم والنطاق والمسار معًا.

وعليه فالنص المرسل والحالة المخزنة دليلان مختلفان. يلزم بصمة للتعليمة تخفي السر، وحكم قبول أو فئة رفض، ووصف للنطاق المطبّع. من دون ذلك تندمج أخطاء الصياغة وسياسة الخصوصية والاستبدال الصحيح وفشل النطاق تحت عبارة مبهمة واحدة: «لم يعد الملف موجودًا».

تاريخ الانتهاء حد أقصى لا عقد حفظ

يطلب الخادم مدة قصوى، لكنه لا يحجز مساحة في جهاز المستخدم. يجوز لوكيل المستخدم ضبط التاريخ وتطبيق حد عمر خاص به وحذف المنتهي وإخلاء السجلات الزائدة عند تجاوز حد للنطاق أو للمخزن كله. وقد يحذف المستخدم الحالة، أو تقصرها سياسة، وتنتهي السجلات غير الدائمة عند انتهاء الجلسة وفق تعريف الوكيل نفسه.

لهذا لا تثبت عبارة «ينتهي بعد عام» أنه سيبقى عامًا. الواقعة القابلة للمساءلة هي حدث الاحتفاظ: انتهاء فعلي، أو استبدال، أو حذف صريح، أو نهاية جلسة، أو ضغط سعة، أو تنظيف بسياسة. يمكن حفظ التفاصيل داخل جهاز مُدار. أما موقع عام فلا يحق له طلب جرد خاص كامل بحجة التشخيص؛ تكفي فئات عامة أو بيانات مجمعة أو فحص وافق عليه المستخدم.

ينصح RFC الخوادم بأن تتدهور وظائفها بصورة مقبولة عند غياب ملفات الارتباط، لأن الوكيل قد يزيلها في أي وقت. السؤال المهني ليس «لماذا خالف العميل تاريخنا؟»، بل «أي افتراض جعلناه شرطًا من دون دليل على استمرار الحالة؟».

كل طلب يعيد قرار الاختيار

قد يكون السجل موجودًا ولا يدخل طلبًا بعينه. يقيّم الاسترجاع URI وحالة same-site ونوع الوصول. ويستبعد ما انتهت مدته أو لا يطابق المضيف أو النطاق أو المسار، أو ما يحتاج قناة آمنة، أو تحجبه HttpOnly عن واجهة غير HTTP، أو تمنعه SameSite. وتستطيع سياسة الوكيل إسقاط حقل Cookie كاملًا.

يدمج معيار WHATWG Fetch ملفات الارتباط في معالجة بيانات الاعتماد. أما document.cookie في HTML فهي واجهة غير HTTP ولا تملك عبور HttpOnly. تختلف أيضًا المستندات العليا والأسلاف وعمليات إعادة التحميل والعوامل في حساب «الموقع لملفات الارتباط». عنوان الوجهة وحده لا يعيد بناء القرار.

لا تمثل SameSite موافقة المستخدم. تعمل Strict وLax وNone وDefault داخل سياق محدد، وقد يسمح نمط التوافق Lax-allowing-unsafe لنافذة قصيرة يختارها وكيل المستخدم لسجل Default حديث. يقدم RFC هذه السمة دفاعًا متعدد الطبقات، لا علاجًا عامًا لـCSRF، ويبين أن الخادم هو من يحددها.

ما يعود هو الزوج لا ملف الإثبات

يصل إلى الخادم الاسم والقيمة عادة، لا Domain ولا Path ولا SameSite ولا وقت الإنشاء ولا سبب الاختيار. وقد تتعايش سجلات تحمل الاسم نفسه وتختلف في النطاق أو المسار، ولا ينبغي للخادم أن يستنبط أولوية تجارية من ترتيبها. كما يسمح HTTP/2 وHTTP/3 بنقل سلسلة منطقية عبر أكثر من سطر؛ لا يعيد ذلك تاريخ المخزن.

ثم تبدأ سلطة التطبيق. أي محلل تعامل مع الأسماء المكررة؟ هل يشير المعرّف إلى جلسة حية أم ملغاة أو مدوّرة؟ هل ثبتت الهوية؟ هل تملك هذه الهوية تنفيذ الطريقة على المورد؟ هل تحقق ضبط CSRF؟ ينظم RFC 9110 دلالة HTTP، لكنه لا يتخذ قرار التفويض المحلي.

يصف RFC ملفات الارتباط بأنها سلطة محيطة. يستطيع طرف ثالث دفع وكيل المستخدم إلى طلب، فيرفق الوكيل سرًا لا يعرفه ذلك الطرف. لذلك لا يثبت وجود الملف قصد المستخدم. كما لا يثبت غيابه قرارًا واعيًا بالرفض؛ قد يكون السبب نطاقًا أو سياسة أو انتهاء أو سعة.

ستة أحكام في إيصال واحد مترابط

يسجل جزء الإصدار عنوان الاستجابة ووقتها وأسطر Set-Cookie مرتبة وغير مدمجة وإصدار الإعداد وبصمة تحجب القيمة. ويسجل جزء القبول محرك الاستهلاك والسياسة الفعلية ونتيجة التحليل وفئة الرفض. ويسجل جزء التخزين النطاق والأعلام بعد التطبيع والانتهاء الفعلي وعلاقة الاستبدال.

يسجل الاحتفاظ الانتهاء أو الحذف أو نهاية الجلسة أو الإخلاء حين تتوافر رؤية مشروعة. ويربط الاسترجاع الطلب بعنوانه وطريقته وبادئه وسياقه الأعلى وحساب SameSite ومعرّفات مبهمة لما أُدرج أو حُجب. ويفصل التطبيق بين التحليل والبحث عن الجلسة والتوثيق وضبط CSRF والتفويض والنتيجة.

هذا نموذج حوكمة يقترحه Daniel Kade، وليس صيغة قياس يفرضها RFC 10025. لا يسجل قيمة ملف الارتباط أو رمز الحامل أو سر الجلسة، ولا يجبر متصفحًا عامًا على كشف مخزنه.

يتفق ذلك مع أولوية Heng Lu لـالشفرة العاملة بوصفها الدليل الأول. تعرض مرآة السياسة صاحب القرار ولا تحوّل رغبة الخادم إلى حقيقة لدى العميل. وهكذا يبقى الواقع لا المناصرة هو المنتج.

المصادر