هاتف

ماهو ملف تعريف الارتباط (الكوكيز)

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


مقدمة :

إذا كنت مطور ويب فلابد أنك صادفت مصطلح الكوكيز أو ملف تعريف الإرتباط بالعربية.


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

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


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

تظهر جليا الفائدة الكبيرة للكوكيز في تحسين تجربة المستخدم و إعفائه من تكرير بعض العمليات المرهقة، مما يسمح بتصفح أكثر سلاسة.


كملاحظة مهمة يجب أن تعرف أنه هناك عدة أنواع من الكوكيز. الثلاث الأكثر شيوعا هم : كوكيز الجلسة أو Session، الدائمة و كوكيز الأطراف الثالثة (Third-party).

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



إستعمال الكوكيز :

إنشاء الكوكيز في السيرفر:

حين يتم إنشاء ملف تعريف إرتباط، يقوم السيرفر بإرسال أمر للمتصفح مرفوق ببروتوكول نقل النص الفائق (HTTP). هذا الأمر يسمح للمتصفح بإنشاء و تخزين ملف تعريف الإرتباط.

إذا ما تم إنشاء طلبات HTTP أخرى يقوم المتصفح تلقائيا بتضمين الكوكيز التي تم إنشائها.


مثال لإنشاء ملف تعريف ارتباط بلغة Node.js :


response.setHeader('Set-Cookie', 'key=value')code-box


كلمة value هي المكان الذي سيحتوي الكلمة أو النص الذي نريد تخزينه. لحذف الكوكيز يمكن إستعمال الآتي :

'expires = date'code-box

مع استبدال date بتاريخ في الماضي.

أو يمكن إستعمال () clearCookie باستعمال إطار العمل Express.js


إنشاء الكوكيز في جهة العميل (client-side) :

يمكن إنشاء الكوكيز أيضا في جهة العميل باستعمال لغة JavaScript. وذلك بكتابة الآتي:


document.cookies = "name = bloggingarabic"code-box


إذا كتبت :

console.log(document.cookie)code-box

سيتم طباعة الآتي :

"name=bloggingarabic"code-box

لحذف الكوكيز يمكننا كتابة الآتي :

document.cookie = "name=; expires=Mon, 20 Dec 1920 00:00:00 UTC;code-box

إعدادات الكوكيز :

يمكن إستعمال بعض الإعدادات في الكوكيز لتخصيصها بشكل أفضل.

 باستعمال Expires و Max-Age :

لإنشاء ملف تعريف ارتباط دائم، يجب تعيين تاريخ صلاحية. يمكنك إستعمال إما :

Set-Cookie : id = 2; Expires = Monday, 20 Jan 2021 00:00:00 GMT;code-box

Set-Cookie : id = 2; Max-Age = 58162000;code-box


باستعمال Domain و Path :

إعدادت domain و path تحدد المجال و الدومينات التي يمكن الوصول إليها من قبل ملف تعريف الإرتباط.

يقوم domain بتحديد الدومينات المسموح بما فيها الدومينات الفرعية. إذا لم يتم إستعماله، سيتواجد ملف تعريف الإرتباط في الموقع الحالي فقط.

يقوم path بتحديد المسار في رابط URL الذي يتوجب تضمينه للسماح بإرسال ملف تعريف الإرتباط :

Path =/pagecode-box

Set-Cookie: id=1; Domain: github.com;code-box

Set-Cookie: id=1; Path=/custom;code-box


باستعمال secure و httpOnly :

في الطلبات المشفرة المستعملة في بروتوكول HTTPS التي يتم إرسالها إلى السيرفر، يمكن للكوكيز أن تشمل إعداد secure. فالكوكيز في الأصل ليست آمنة ولا ينصح باستعمالها لتخزين المعلومات الحساسة. بعض المتصفحات مثل Chrome و Firefox أصبحت تمنع المواقع الغير آمنة من إستعمال الكوكيز مع إعداد secure.


هناك أيضا إعداد httpOnly، هذا الأخير يمنع JavaScript من الوصول إلى الكوكيز، فقط السيرفر هو من يمكنه الإطلاع عليها. ولتفعيل هذا نكتب :

Set-Cookie: id=1; Path=/custom;code-box

باستعمال SameSite :

لأسباب أمنية، لمنع الكوكيز من استقبال طلبات من مواقع أخرى نستعمل إعداد SameSite. و يقبل القيم التالية : None، Lax، Strict.

يسمح None بإرسال الكوكيز من نفس الموقع أو مواقع أخرى. Lax يسمح بإرسال الكوكيز عندما يتصفح المستخدم الموقع قادما من موقع آخر. Strict تسمح بإرسال الكوكيز من الموقع المستعمل فقط.

Set-Cookie: id=1; SameSite=Strict;code-box


أشكرك على قرائتك لهذا المقال ، إذا كان لديك تساؤل أو توضيح ضعه في التعليقات أسفله و أراك في مقالة أخرى.alert-info

إرسال تعليق

0 تعليقات