تتأثر ملفات تعريف الارتباط بالنطاق والمسار ووسم Secure وسياق الطلب وسياسة المتصفح. يقترح مشروع تخرج الأمن السيبراني صفحة محلية ضمن نطاقات اختبار يملكها الفريق، ترسل cookies ذات أسماء وقيم اصطناعية ثم تسجل هل أرسلت في كل سياق. لا تستخدم حسابات حقيقية ولا تختبر على مواقع لا تملكها.

تشرح MDN خصائص Set-Cookie، ومنها SameSite وHttpOnly وSecure، وتشير إلى تفاصيل الدعم المتغير لبعض الخصائص. RFC 6265 يحدد آلية الحالة الأساسية، لكنه سابق لبعض التطورات اللاحقة. وثق browser/version ونوع السياق في كل نتيجة ولا تحول ملاحظة متصفح واحد إلى قاعدة عامة.

جهز جدولاً فيه cookie host-only وأخرى مع Domain، وPath مختلف، ثم حالات SameSite Strict وLax وNone، مع Secure مناسب للبيئة. افصل HttpOnly لأنه يمنع وصول JavaScript إلى القيمة في سياق واجهات معينة، لكنه لا يمنع إرسالها مع كل طلب. اجعل Partitioned حالة تجريبية منفصلة لأن الدعم والتفاصيل تتغير؛ لا تفترض توافقاً كاملاً قبل تحقق مباشر.

أنشئ نطاقين محليين مثل app.test وother.test مع إعداد hosts أو harness يدعم ذلك، وشهادة محلية لحالات Secure. إذا اختبرت HTTP فقط، لن تستطيع استنتاج سلوك Secure في HTTPS. سجّل الخطوات الدقيقة: فتح صفحة أولى، انتقال top-level، أو طلب fetch عبر سياق آخر. اسم الخاصية وحده لا يصف سياق الإرسال.

في تجربة توضيحية، يصدر الخادم cookie باسم lab_session وقيمة عشوائية ثابتة للاختبار وSameSite=Lax. عند تنقل علوي إلى الموقع قد يختلف السلوك عن طلب فرعي أطلقه iframe أو fetch؛ اكتب توقعاتك قبل تشغيل المتصفح ثم قارن الشبكة الفعلية. لا تستخدم القيمة كجلسة مصادقة حقيقية، ولا تضعها في query string أو سجل عام.

كرر بالتحول إلى SameSite=None مع Secure على HTTPS محلي، ثم بدّل HttpOnly وافحص من JavaScript هل يمكن قراءة القيمة. سجّل أن إمكانية القراءة ليست هي نفسها إرسالها في الطلب. أضف cookie باسم نطاق فرعي للمقارنة. هذا المثال يبين لماذا يجب قياس السياق؛ لا يحسم جميع استثناءات browser privacy أو إعدادات المستخدم.

ضع اختبارات مستقلة لقراءة document.cookie، وترويسة Cookie في الطلب، وظهور Set-Cookie، وتخزين المتصفح. تحقق من أن HttpOnly لا يظهر في API الصفحة، وأن Secure لا يرسل على نقل غير آمن في سياق الدعم المختبر. اختبر تعارض أسماء cookies مع Path مختلف؛ قد يصل أكثر من عنصر بالاسم نفسه وفق سياسات المسار.

احتفظ بنتيجة لكل إصدار متصفح وتاريخ، وعلّم «غير مدعوم» أو «غير محسوم» بدلاً من اعتبار غياب cookie خطأ تطبيق دائماً. معيار القبول قابل لإعادة الإعادة: نفس المتصفح والإعداد والسياق ينتج تقريراً واضحاً، لا أن تتطابق كل المحركات. اكتب fallback إذا رفض المتصفح third-party cookie بسبب سياسة عامة.

قد تمنع إعدادات الخصوصية التخزين قبل أن تصل إلى الخاصية التي تريد اختبارها. وقد تمنع شهادة TLS غير الموثوقة cookie Secure. سجّل console وnetwork errors بعد تنقيحها، وتحقق أن مضيفي الاختبار ليسوا نطاقات حقيقية. لا تحاول تعطيل حماية المتصفح كي تحصل على نتيجة مرغوبة؛ التغيير نفسه يبدل شروط الدراسة ويجب عرضه في التقرير.

قارن الخادم والعميل: Set-Cookie في الاستجابة لا يضمن أن المتصفح حفظ القيمة، ووجودها في التخزين لا يضمن إرسالها لكل طلب. افصل هذين السؤالين في واجهة التقرير. استخدم أدوات تطوير المتصفح للتحقق يدوياً من عينة، ثم أعد الاختبار آلياً إن كانت بيئتك تسمح. لا تسجل قيمة cookie نفسها؛ يكفي اسم المختبر وحالة الحفظ والإرسال.

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

تناسب الفكرة مشاريع تخرج الأمن السيبراني ويمكن ضبطها ضمن مشاريع التخرج وخدمة تطوير المواقع. لا تختبر أسرار جلسات حقيقية ولا تجمع بصمات زوار. النتيجة التعليمية هي معرفة ما اختبره الفريق وما يظل متعلقاً بإعداد متصفح أو إصدار لاحق. راجع مرجع MDN لـSet-Cookie وRFC 6265 مع تدوين تاريخ ونسخة المتصفح.

المصادر

مراجعة المصادر: .

اختبار المثال وحدوده

الحالات الواردة أمثلة مصطنعة للاختبار وليست نتائج ميدانية أو قياسات فعلية.

مقالات ذات صلة

الخدمة المرتبطة: تطوير المواقع والتطبيقات والأنظمة المخصصة.

أرسل متطلبات مشروعك