عندما يستجيب خادم ويب لطلب الحصول على أحد الموارد، يمكن للخادم تضمين عنوان Set-Cookie في استجابته. يطلب هذا العنوان من متصفّحك تخزين ملف تعريف ارتباط.
على سبيل المثال: Set-Cookie:cat=tabby.
بالإضافة إلى توفير اسم ملف تعريف ارتباط وقيمته، يمكن أن يتضمّن Set-Cookie سمات للتحكّم في ما إذا كان يتم ضبط ملفات تعريف الارتباط، ومتى تنتهي صلاحيتها. يتم فصل سمات ملفات تعريف الارتباط باستخدام الفاصلات المنقوطة. على سبيل المثال:
Set-Cookie:cat=tabby; Secure; HTTPOnly; Expires=Tue, 31 Dec 2999 23:59:59 GMT;
يوضّح هذا المستند أهم سمات ملفات تعريف الارتباط:
توضّح مقالة استخدام ملفات تعريف ارتباط HTTP سمات ملفات تعريف الارتباط بتفاصيل فنية أكثر.
آمن
إذا كان عنوان Set-Cookie يتضمّن Secure، لن يتم تضمين ملف تعريف الارتباط إلا في الطلبات المشفرة التي تستخدم بروتوكول HTTPS: لن يتم تضمين ملف تعريف الارتباط في طلبات HTTP. يمكن أن يساعد ذلك في إيقاف
الهجمات الوسيطة،
حيث يتدخّل مهاجم سرًا في الاتصالات بين
المتصفّح والخادم لنقل المعلومات، ومن المحتمل تغييرها.
HTTPOnly
إذا كان عنوان Set-Cookie يتضمّن HTTPOnly، لا يمكن لـ JavaScript الوصول إلى ملف تعريف الارتباط، مثلاً باستخدام document.cookie. يساعد ذلك في الحماية من أنواع معيّنة من الهجمات التي تستهدف ملفات تعريف الارتباط.
SameSite
يُعدّ طلب الحصول على أحد الموارد من موقع إلكتروني مختلف عن الموقع الإلكتروني الذي تتصفّحه طلبًا من مواقع إلكترونية مختلفة. وملف تعريف الارتباط الذي يتم ضبطه استجابةً لطلب من مواقع إلكترونية مختلفة هو ملف تعريف ارتباط تابع لجهة خارجية.
تتحكّم السمة SameSite في ما إذا كان سيتم تضمين ملف تعريف ارتباط تابع لجهة خارجية في الطلب. يمكن أن تتضمّن ثلاث قيم محتمَلة: Strict أو Lax أو None.
مزيد من المعلومات: ما هي ملفات تعريف الارتباط التابعة لجهة خارجية؟
متشدّد
لن يتم إرسال ملف تعريف الارتباط إلا استجابةً للطلبات الواردة من صفحة على الموقع الإلكتروني الذي تم ضبط ملف تعريف الارتباط عليه. على سبيل المثال: تخيَّل أنّ مستخدمًا ينتقل إلى cats.example ويتم ضبط ملف تعريف ارتباط له باستخدام السمة SameSite=Strict. في وقت لاحق، ينتقل المستخدم إلى موقع إلكتروني مختلف، وينقر على رابط يؤدي إلى صفحة على cats.example. لن يتم تضمين ملف تعريف الارتباط الذي تم ضبطه في هذا الطلب.
Lax
تعمل هذه القيمة بالطريقة نفسها التي تعمل بها Strict، باستثناء أنّ المتصفّح سيضمّن أيضًا ملف تعريف الارتباط عندما ينقر المستخدم على رابط يؤدي إلى الموقع الإلكتروني الذي تم ضبط ملف تعريف الارتباط عليه. (في مثال Strict السابق، سيتم تضمين ملف تعريف الارتباط عندما ينقر المستخدم على الرابط الذي يؤدي إلى cats.example.) Lax هي القيمة التلقائية إذا لم يتم تضمين السمة SameSite في عنوان Set-Cookie.
بدون
ما مِن قيود مفروضة: سيتم تضمين ملف تعريف الارتباط في الطلب، سواء كان من مواقع إلكترونية مختلفة أم لا. عند استخدام SameSite=None، يجب أن يتضمّن ملف تعريف الارتباط أيضًا السمة Secure.
ملفات تعريف الارتباط المقسَّمة
تتيح لك هذه السمة الموافقة على استخدام ملف تعريف ارتباط في مساحة تخزين مقسَّمة، مع "وعاء ملفات تعريف ارتباط" منفصل لكل موقع إلكتروني ذي مستوى أعلى. يتم وضع مفتاح مزدوج لملف تعريف الارتباط، حسب الموقع الإلكتروني ذي المستوى الأعلى بالإضافة إلى النطاق الذي يضبطه.
على سبيل المثال: تخيَّل أنّ الموقع الإلكتروني (أ) والموقع الإلكتروني (ب) يتضمّنان إطار iframe من الموقع الإلكتروني (ج). لا يمكن لإطار iframe على الموقع الإلكتروني (ب) الوصول إلى ملف تعريف ارتباط مقسَّم تم ضبطه بواسطة إطار iframe على الموقع الإلكتروني (أ): ملف تعريف الارتباط AC منفصل عن ملف تعريف الارتباط BC.
تُعرف ملفات تعريف الارتباط التي تتضمّن السمة Partitioned باسم CHIPS: ملفات تعريف الارتباط في الحالة المقسَّمة المنفصلة.
يجب أن تتضمّن ملفات تعريف الارتباط المقسَّمة السمة Secure.
مزيد من المعلومات: ملفات تعريف الارتباط في الحالة المقسَّمة المنفصلة.
Expires وMax-Age
يمكنك تحديد تاريخ ووقت Expires، أو Max-Age بالثواني، وبعد ذلك يجب حذف ملف تعريف الارتباط ولن يتم إرساله بعد الآن. على سبيل المثال:
Set-Cookie:cat=tabby; Expires=Tue, 31 Dec 2999 23:59:59 GMT;Set-Cookie:cat=tabby; Max-Age=86400
إذا لم تحدّد السمتَين Max-Age أو Expires، سيتم حذف ملف تعريف الارتباط عند انتهاء الجلسة الحالية. يُعرف هذا النوع من ملفات تعريف الارتباط أحيانًا باسم ملف تعريف ارتباط الجلسة.
النطاق
إذا كان عنوان Set-Cookie يتضمّن السمة Domain، سيتم تضمين ملف تعريف الارتباط في الطلبات الموجّهة إلى النطاق المحدّد وأي من نطاقاته الفرعية.
إذا لم يكن عنوان Set-Cookie يتضمّن السمة Domain، لن يتم تضمين ملف تعريف الارتباط في الطلبات الموجّهة إلى النطاقات الفرعية.
بعبارة أخرى، يؤدي تضمين السمة Domain إلى تقليل قيود النطاق.
على سبيل المثال، مع استجابة من الموقع الإلكتروني cats.example:
Set-Cookie:cat=tabby
لن يتم تضمين ملف تعريف الارتباط إلا في الطلبات الموجّهة إلىcats.exampleSet-Cookie:cat=tabby; Domain=cats.example
سيتم تضمين ملف تعريف الارتباط في الطلبات الموجّهة إلىcats.example، وأي طلبات للحصول على موارد على نطاقات فرعية مثلfluffy.cats.exampleأوuser.assets.cats.example
المسار
إذا تم تضمين السمة Path في عنوان استجابة Set-Cookie، لن يتم تضمين ملف تعريف الارتباط الذي تم ضبطه إلا في الطلبات الموجّهة إلى عناوين URL (على الموقع الإلكتروني الذي ضبط ملف تعريف الارتباط!) التي تتطابق مع قيمة Path.
على سبيل المثال:
Set-Cookie:cat=tabby; Path=/articles
سيتم تضمين ملف تعريف الارتباط في طلب أي مسار عنوان URL يبدأ بـ/articles:
✅https://cats.example/articles/tabby/index.html
✅https://cats.example/articles/breeds/tabby/index.html
❎https://cats.example/images/tabby.jpg
❎https://cats.example/en/articles/tabby/index.htmlSet-Cookie:cat=tabby; Path=/
ستتضمّن جميع الطلبات الموجّهة إلى أي عنوان URL على الموقع الإلكتروني ملف تعريف الارتباط.
إذا لم يكن عنوان استجابة Set-Cookie يتضمّن قيمة Path، لن يتم تضمين ملف تعريف الارتباط إلا في الطلبات الموجّهة إلى الدليل نفسه. على سبيل المثال، تخيَّل أنّه يتم ضبط ملف تعريف ارتباط cat=tabby استجابةً لطلب cats.example/images/tabby.jpg. إذا لم يتم ضبط Path، لن يتم تضمين ملف تعريف الارتباط إلا في الطلبات الموجّهة إلى الملفات ضمن الدضم cats.example/images.
العروض التوضيحية
- 1pc.glitch.me: عرض توضيحي لملفات تعريف الارتباط الخاصة بالطرف الأول
- 3pc.glitch.me: عرض توضيحي لملف تعريف ارتباط تابع لجهة خارجية
الأدوات
- عرض ملفات تعريف الارتباط وإضافتها وتعديلها وحذفها في "أدوات مطوّري البرامج في Chrome"
- أداة تحليل "مبادرة حماية الخصوصية"
مزيد من المعلومات
- وصفات ملفات تعريف الارتباط الخاصة بالطرف الأول
- ما هي ملفات تعريف الارتباط؟
- ما هي ملفات تعريف الارتباط التابعة لجهة خارجية؟
- طلب HTTP واستجابته
- أدوات ملفات تعريف الارتباط
- العروض التوضيحية لملفات تعريف الارتباط
- استخدام ملفات تعريف ارتباط HTTP
- ملفات تعريف الارتباط الموضّحة للسمة SameSite
- OWASP: ملفات تعريف الارتباط