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

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

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

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

في حال عدم استخدام ملف تعريف الارتباط الذي تضبطه في المواقع الإلكترونية، على سبيل المثال، يُستخدم لإدارة الجلسات على موقعك الإلكتروني، ولم يتمّ استخدامه أبدًا في إطار 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;