وصفات تحضير الكعك للطرف الأول

تعرَّف على كيفية ضبط ملفات تعريف الارتباط للطرف الأول لضمان الأمان والتوافق مع جميع المتصفحات وتقليل فرص تعطُّلها بعد إيقافها تدريجيًا.

يمكن أن تكون ملفات تعريف الارتباط تابعة للطرف الأول أو تابعة لجهة خارجية بالنسبة إلى سياق المستخدم، استنادًا إلى الموقع الإلكتروني الذي يتصفّحه المستخدم في ذلك الوقت. في حال تطابق مخطط ملف تعريف الارتباط والنطاق القابل للتسجيل مع صفحة المستوى الأعلى الحالية، أي ما يتم عرضه في شريط عناوين المتصفح، سيتم اعتبار ملف تعريف الارتباط على أنّه من الموقع الإلكتروني نفسه للصفحة، ويُشار إليه عادةً باسم ملف تعريف الارتباط للطرف الأول.

ويُشار عادةً إلى ملفات تعريف الارتباط من نطاقات غير الموقع الإلكتروني الحالي باسم ملفات تعريف الارتباط التابعة لجهات خارجية.

في حال عدم استخدام ملف تعريف الارتباط الذي تضبطه على مواقع إلكترونية مختلفة، على سبيل المثال، يُستخدم لإدارة الجلسات على موقعك الإلكتروني ولا يتم استخدامه أبدًا في إطار iframe في مواقع إلكترونية متعددة، سيتم دائمًا استخدام ملف تعريف الارتباط هذا في سياق الطرف الأول.

بشكل تلقائي، يمكن مشاركة ملفات تعريف الارتباط بين المواقع الإلكترونية، ويمكن الوصول إليها من خلال JavaScript، وإرسالها من خلال اتصالات HTTP، ما يصاحب ذلك بعض المخاطر المتعلقة بالخصوصية والأمان. نحن نعمل باستمرار على تحسين السلوك التلقائي، ومن خلال مبادرة حماية الخصوصية وغيرها من الاقتراحات، مثل ملفات تعريف الارتباط المرتبطة بالمصدر، يمكنك تنفيذ الكثير اليوم من خلال ضبط سمات إضافية على ملفات تعريف الارتباط.

يُعد الإعداد التالي من أفضل الممارسات، مما يضمن الأمان والتوافق عبر المتصفحات مع معظم ملفات تعريف الارتباط للطرف الأول. سيوفّر لك ذلك أساسًا آمنًا يمكنك تعديله لفتح الأذونات إلا عند الضرورة. تتناول هذه المقالة أيضًا أشكالاً مختلفة من الوصفات لبعض حالات الاستخدام المحددة.

الوصفة

Set-Cookie:
__Host-cookie-name=cookie-value;
Secure;
Path=/;
HttpOnly;
Max-Age=7776000;
SameSite=Lax;
التفاصيل

Host هي بادئة اختيارية تجعل بعض السمات إلزامية وتحظر سمات أخرى:

  • يجب أن يتوفّر Secure.
  • يجب حذف Domain.
  • يجب أن يكون Path /.

من خلال إضافة Host، يمكنك الاعتماد على المتصفّح للتحقّق مما إذا تم ضبط هذه السمات بما يتماشى مع قواعد __Host ورفض ملف تعريف الارتباط في حال عدم ضبطه.

يحمي Secure ملفات تعريف الارتباط من السرقة على الشبكات غير الآمنة لأنه لا يسمح إلا بإرسال ملفات تعريف الارتباط عبر اتصالات HTTPS. إذا لم تكن قد نقلت موقعك الإلكتروني إلى بروتوكول HTTPS بالكامل، يجب منح هذه الأولوية.

تحدّد السمة Domain المضيفات التي يمكنها تلقّي ملف تعريف ارتباط. يؤدي إغفاله إلى تقييد ملف تعريف الارتباط إلى مضيف المستند الحالي، باستثناء النطاقات الفرعية: سيتم إرسال ملف تعريف الارتباط في example.com بناءً على كل طلب إلى example.com وليس في الطلبات المرسَلة إلى images.example.com. إذا كان لديك تطبيقات مختلفة يتم تشغيلها على نطاقات فرعية مختلفة، يؤدي ذلك إلى الحد من خطر اختراق أحد النطاقات، ما يسمح بدخول النطاقات الأخرى.

تشير السمة Path إلى المسار الذي يجب أن يكون متوفّرًا في عنوان URL المطلوب كي يتمكّن المتصفِّح من إرسال عنوان Cookie. ويعني ضبط Path=/ أنّه يتم إرسال ملفّ تعريف الارتباط إلى جميع مسارات عناوين URL على ذلك النطاق. عند الجمع بين عدم Domain وPath=/، يكون ملف تعريف الارتباط مرتبطًا بالمصدر بأقرب شكل ممكن، لذا فهو يعمل بشكل مشابه لمساحة التخزين الأخرى من جهة العميل، مثل LocalStorage، وليس هناك التباس من أنّ example.com/a قد يتلقى قيمًا مختلفة عن example.com/b.

توفّر السمة HttpOnly بعض الحماية من النصوص البرمجية الضارّة التابعة لجهات خارجية على مواقعك الإلكترونية من خلال حظر الوصول إلى JavaScript. تسمح هذه السياسة بإرسال ملف تعريف ارتباط في عناوين الطلبات فقط ولا يمكن استخدامها في JavaScript باستخدام document.cookie.

يحد Max-Age من عمر ملف تعريف الارتباط، حيث يمكن أن تستمر جلسات المتصفح لفترة طويلة جدًا، وبذلك لا تريد أن تستمر ملفات تعريف الارتباط القديمة في الأبد. وهو مناسب لملفات تعريف الارتباط قصيرة المدى، مثل جلسات المستخدم أو حتى الجلسات الأقصر مثل الرموز المميّزة لإرسال النماذج. يتم تحديد Max-Age بالثواني، وفي المثال السابق، تم ضبطه على 7776000 ثانية، أي 90 يومًا. وهذا أمر افتراضي معقول، ويمكنك تغييره حسب حالة الاستخدام.

تفرض SameSite=Lax قيودًا على إرسال ملف تعريف الارتباط إلى طلبات الموقع الإلكتروني نفسها فقط. وهذا يعني أنّ الطلب يتطابق مع سياق التصفُّح الحالي، أي الموقع الإلكتروني الأعلى مستوى الذي يزوره المستخدم حاليًا والمعروض في شريط الموقع الجغرافي. SameSite=Lax هو الإعداد التلقائي في المتصفحات الحديثة، ولكن يُفضَّل تحديده من حيث التوافق مع جميع المتصفحات التي قد يكون لها إعدادات تلقائية مختلفة. ومن خلال وضع علامة واضحة على ملف تعريف الارتباط على أنّه الموقع الإلكتروني نفسه فقط، يعني ذلك أنّك تحصره بسياقات الطرف الأول، وليس من المفترض أن تحتاج إلى إجراء تغييرات على ملف تعريف الارتباط هذا عند إيقاف ملفات تعريف الارتباط التابعة لجهات خارجية.

لمزيد من المعلومات عن السمات المختلفة لملفات تعريف الارتباط، اطّلِع على مستندات Set-Cookie حول MDN.

إذا كان لديك موقع إلكتروني يتضمن نطاقات فرعية وكنت تريد تسجيل جلسة واحدة في جميع هذه النطاقات، يمكن أن تكون البادئة Host محدودة جدًا. على سبيل المثال، يمكن أن يتضمّن news.site نطاقات فرعية للمواضيع، مثل finance.news.site وsport.news.site، وتريد جلسة مستخدم واحدة لها جميعًا. في هذه الحالة، استخدِم البادئة __Secure بدلاً من __Host وحدِّد Domain.

الوصفة

Set-Cookie:
__Secure-cookie-name=cookie-value;
Secure;
Domain=news.site;
Path=/;
HttpOnly;
Max-Age=7776000;
SameSite=Lax;
التفاصيل

Secure هي بادئة اختيارية تؤكد على متطلبات أقل من Host، وتتطلّب فقط ضبط ملف تعريف الارتباط باستخدام السمة Secure.

لا يتم إرسال ملفات تعريف ارتباط SameSite=Lax في الطلبات الفرعية من مواقع إلكترونية متعددة (على سبيل المثال، عند تحميل صور مضمَّنة أو إطارات iframe على موقع إلكتروني تابع لجهة خارجية)، ولكن يتم إرسالها عندما ينتقل المستخدم إلى الموقع الإلكتروني المصدر (على سبيل المثال، عند اتّباع رابط من موقع إلكتروني آخر).

يمكنك أيضًا فرض قيود على الوصول إلى ملفات تعريف الارتباط وعدم السماح بإرسالها مع الطلبات التي يتم إرسالها من مواقع إلكترونية تابعة لجهات خارجية باستخدام SameSite=Strict. ويفيد ذلك عندما يكون لديك ملفات تعريف ارتباط ذات صلة بالوظائف التي ستكون دائمًا خلف التنقل الأولي، مثل تغيير كلمة المرور أو إجراء عملية شراء.

الوصفة

Set-Cookie:
__Host-cookie-name=cookie-value;
Secure;
Path=/;
HttpOnly;
Max-Age=7776000;
SameSite=Strict;