عندما يستجيب خادم الويب لطلب الحصول على مورد، يمكن أن يضمِّن الخادم عنوان 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 على الموقع الإلكتروني "أ"، لأنّ ملف تعريف الارتباط 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.example
Set-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.html
Set-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: ملفات تعريف الارتباط