ملف تعريف الارتباط هو مجموعة من البيانات المخزنة في المتصفح تُستخدم للاحتفاظ بالحالة والمعلومات الأخرى التي يحتاجها موقع الويب لتنفيذ ميزاته.
ملف تعريف الارتباط هو ملف صغير تخزنه مواقع الويب على أجهزة المستخدمين، وتتنقل المعلومات التي تخزنها بين المتصفح وموقع الويب.
يكون كل ملف تعريف ارتباط عبارة عن زوج مفتاح/قيمة إلى جانب عدد من السمات التي تتحكّم في وقت ومكان استخدام ملف تعريف الارتباط هذا. تُستخدَم هذه السمات لضبط عناصر مثل تواريخ انتهاء الصلاحية أو للإشارة إلى أنّه يجب إرسال ملف تعريف الارتباط عبر HTTPS فقط. يمكنك ضبط ملف تعريف ارتباط في عنوان HTTP أو من خلال واجهة JavaScript.
ملفات تعريف الارتباط هي إحدى الطرق المتاحة لإضافة حالة دائمة إلى مواقع الويب. على مرّ السنين، تطوّرت إمكاناتها وتطوّرت، لكنّها واجهت بعض المشاكل القديمة التي واجهت مشاكل على المنصة. لحلّ هذه المشكلة، تغيّر المتصفّحات (بما في ذلك Chrome وFirefox وEdge) سلوكها لفرض المزيد من الإعدادات التلقائية للحفاظ على الخصوصية.
استخدام ملفات تعريف الارتباط
لنفترض أن لديك مدونة تريد عرض رابط "ما الجديد؟" رسالة ترويجية إلى المستخدمين. يمكن للمستخدمين رفض العرض الترويجي ثم لن يظهر لهم مرة أخرى لفترة من الوقت. يمكنك تخزين هذا التفضيل في ملف تعريف ارتباط، وتعيينه لتنتهي صلاحيته خلال شهر. (2,600,000 ثانية) وإرسالها عبر HTTPS فقط. سيبدو هذا العنوان مثل التالي:
Set-Cookie: promo_shown=1; Max-Age=2600000; Secure
عندما يعرض القارئ صفحة تستوفي هذه المتطلبات، فهو على اتصال آمن وملف تعريف الارتباط لم يمرّ على استخدامه أكثر من شهر يرسل العنوان هذا في طلبه:
Cookie: promo_shown=1
يمكنك أيضًا إضافة وقراءة ملفات تعريف الارتباط المتاحة لهذا الموقع في JavaScript باستخدام
document.cookie
سيؤدي إسناد مهمة دراسية إلى document.cookie
إلى إنشاء
استبدال ملف تعريف ارتباط باستخدام هذا المفتاح. على سبيل المثال، يمكنك تجربة ما يلي في
وحدة تحكم JavaScript في المتصفح:
→ document.cookie = "promo_shown=1; Max-Age=2600000; Secure"
← "promo_shown=1; Max-Age=2600000; Secure"
ستؤدي قراءة document.cookie
إلى إخراج جميع ملفات تعريف الارتباط التي يمكن الوصول إليها في النطاق الحالي
السياق، مع فصل كل ملف تعريف ارتباط بفاصلة منقوطة:
→ document.cookie;
← "promo_shown=1; color_theme=peachpuff; sidebar_loc=left"
إذا جربت هذا على مجموعة مختارة من المواقع الشائعة، فستلاحظ أن معظم
على ضبط أكثر بكثير من ثلاثة ملفات تعريف ارتباط. في معظم الحالات،
يتم إرسال ملفات تعريف الارتباط في كل طلب إلى هذا النطاق، والذي يحتوي على عدد من
وآثارها. غالبًا ما يكون معدل نقل البيانات للتحميل أكثر تقييدًا من التنزيل على
المستخدمين، بحيث تؤدي النفقات العامة على جميع الطلبات الصادرة إلى تأخير في الوقت
إلى البايت الأول. كن متحفظًا في عدد ملفات تعريف الارتباط التي تعيِّنها وحجمها. الماركة
استخدام السمة Max-Age
لضمان عدم إيقاف تشغيل ملفات تعريف الارتباط
أطول من اللازم.
ما هي ملفات تعريف الارتباط الخاصة بالطرف الأول والطرف الثالث؟
إذا عدت إلى نفس المجموعة المختارة من المواقع التي كنت تبحث عنها من قبل، أن هناك ملفات تعريف ارتباط موجودة على نطاق واسع، وليس فقط الذي كنت تقوم بزيارته حاليًا. ملفات تعريف الارتباط التي تتطابق مع نطاق الموقع الحالي، أي ما يتم عرضه في شريط عناوين المتصفح، تتم الإشارة كملفات تعريف ارتباط الطرف الأول. وبالمثل، فإن ملفات تعريف الارتباط من نطاقات أخرى غير ملف حاليًا باستخدام ملفات تعريف الارتباط التابعة لجهات خارجية. هذا غير مطلق تسمية ولكنها ذات صلة بسياق المستخدم؛ نفس ملف تعريف الارتباط الطرف الأول أو الطرف الثالث حسب الموقع الذي يزوره المستخدم في ذلك الوقت.
استكمالاً للمثال السابق، لنفترض أن إحدى مشاركات مدونتك تحتوي على
لصورة قطة مذهلة بشكلٍ خاص، تتم استضافته في
/blog/img/amazing-cat.png
لأنها صورة مذهلة، يفكر شخص آخر
ويستخدمها مباشرةً على مواقعهم إذا زار زائر مدونتك وكان لديه
ملف تعريف ارتباط promo_shown
، ثم عند عرض amazing-cat.png
على الملف الآخر
الموقع الإلكتروني للشخص الذي سيتم إرسال ملف تعريف الارتباط هذا إليه في الطلب المتعلق بالصورة. هذا النمط
ليس مفيدًا بشكل خاص لأي شخص لأنّ promo_shown
لا يُستخدم لأي غرض
على موقع الشخص الآخر، بل يتم فقط إضافة أعباء إضافية على الطلب.
إذا كان لذلك تأثير غير مقصود، فلماذا تريد القيام بذلك؟ إنه هذا تسمح للمواقع الإلكترونية بالحفاظ على حالتها عند استخدامها في سياق الطرف الثالث. على سبيل المثال، إذا ضمّنت فيديو YouTube على موقعك، سيرى الزائرون الزر "المشاهدة لاحقًا" الخيار في المشغّل. إذا كان الزائر إلى YouTube، يتمّ توفير هذه الجلسة في مشغّل مضمّن بواسطة ملف تعريف ارتباط تابع لجهة خارجية، أي "المشاهدة لاحقًا" الإجراء الذي سينفّذه حفظ الفيديو دفعة واحدة بدلاً من مطالبتهم بتسجيل الدخول أو الاضطرار إلى وتنقلهم بعيدًا عن الصفحة وإعادتها إلى YouTube.
إحدى الخصائص الثقافية للويب هي أنه يميل إلى الانفتاح من خلال
الافتراضي. وهذا جزء مما جعل من الممكن للعديد من الأشخاص إنشاء
المحتوى والتطبيقات الخاصة بها هناك. ومع ذلك، فقد أدى ذلك أيضًا إلى ظهور عدد من
المخاوف المتعلقة بالأمان والخصوصية. تعتمد هجمات تزوير الطلبات من مواقع إلكترونية متعددة على
أن ملفات تعريف الارتباط تكون مرتبطة بأي طلب إلى مصدر معيّن، بغض النظر
الذي يبدأ الطلب. على سبيل المثال، إذا زرت evil.example
، يمكن عندئذٍ أن
إرسال طلبات إلى your-blog.example
، وسيتولى المتصفح إرفاق الملفات
ملفات تعريف الارتباط المرتبطة. إذا لم تكن مدونتك على علم بكيفية التحقق من صحة هذه
الطلبات ثم قد يؤدي evil.example
إلى تشغيل إجراءات مثل حذف المشاركات أو إضافة
المحتوى الخاص بهم.
أصبح المستخدمون أيضًا أكثر وعيًا بكيفية استخدام ملفات تعريف الارتباط لتتبع
النشاط عبر مواقع متعددة. ومع ذلك حتى الآن، لم تكن هناك طريقة
الإشارة بشكل صريح إلى هدفك من خلال ملف تعريف الارتباط. من المفترض أن يكون ملف تعريف الارتباط promo_shown
يتم إرساله فقط في سياق الطرف الأول، في حين أنّ ملف تعريف ارتباط الجلسة لأحد التطبيقات المصغّرة
أن يكون مضمنًا في مواقع أخرى عن قصد لتقديم
تسجيل الدخول في سياق تابع لجهة خارجية
يمكنك تحديد هدفك بوضوح باستخدام ملف تعريف ارتباط عن طريق ضبط سمة SameSite المناسبة.
لتحديد ملفات تعريف الارتباط الخاصة بالطرف الأول وإعداد السمات المناسبة، يمكنك الاطّلاع على مقالة وصفات تحضير ملفات تعريف الارتباط للطرف الأول.