سمات ملفات تعريف الارتباط

عندما يستجيب خادم الويب لطلب الحصول على مورد، يمكن أن يضمِّن الخادم عنوان 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: عرض توضيحي لملفات تعريف الارتباط التابعة لجهات خارجية

الأدوات

تعرَّف على مزيد من المعلومات