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

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

الأدوات

مزيد من المعلومات