Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. PHP
Code

مقدمة لملفات تعريف الارتباط

by
Difficulty:BeginnerLength:LongLanguages:

Arabic (العربية/عربي) translation by ansgaradh (you can also view the original English article)

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


الخطوة 1. فهم ملفات تعريف الارتباط

الخطوة الأولى في رحلتنا هي اكتشاف ما هي هذه الملفات بالفعل! حتى إذا كنت قد عملت معهم بالفعل ، فقد تجد هذا الجزء مفيدًا جدًا - لذا ابق معي!

نبذة مختصرة

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

  • يمكن لخوادم الويب فقط الوصول إلى ملفات تعريف الارتباط التي تم تعيينها على المجال الخاص بهم. يتم تعيين هذا النطاق بواسطة المستعرض عند طلب ملف تعريف ارتباط جديد لملف تعريف ارتباط من قبل خادم الويب ، ويمكن أن يكون فقط النطاق أو النطاق الفرعي لخادم الويب (يمكن لخادم الويب اختيار نطاق فرعي إذا أراد). وهذا يعني أنه لا يمكن قراءة ملفات تعريف الارتباط التي تم تعيينها ، على سبيل المثال ، google.com بواسطة mozilla.com ، والعكس صحيح.
  • وفقًا لبروتوكول HTTP ، لا يمكن أن تكون ملفات تعريف الارتباط أكبر من 4096 بايت (4 كيلوبايت).
  • هناك حد لعدد ملفات تعريف الارتباط لكل مجال. يختلف العدد في كل متصفح ، ومع ذلك ، فإن الحد الأقصى المستخدم هو 20 من ملفات تعريف الارتباط. هذا لمنع مجال واحد من hogging مساحة القرص العميل.
  • هناك حد للعدد الإجمالي لملفات تعريف الارتباط على القرص الصلب الخاص بالعميل. يختلف هذا الرقم أيضًا لكل متصفح ، ولكنه يقتصر عادةً على حوالي ثلاثمائة ملف تعريف ارتباط. عند تجاوز هذا الرقم ، يتم حذف ملف تعريف ارتباط قديم قبل إنشاء ملف تعريف جديد.

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

تقني

لنكتشف ما تبدو عليه هذه الأشياء على المستوى الفني. يتم نقل ملفات تعريف الارتباط عبر بروتوكول HTTP . gs briefly. بعد طلب ملف تعريف الارتباط ، يتم إرساله إلى الخادم في كل مرة يتم فيها جلب عنصر جديد على صفحة الويب بواسطة المتصفح. في ما يلي ، يمكننا رؤية مقتطف من خادم يطلب ملف تعريف ارتباط جديد (يعتبر هذا المقتطف جزءًا من استجابة HTTP).

الآن لا تخاف ، كل شيء مفهومة للغاية!

  • الآن لا تخاف ، كل شيء مفهومة للغاية!
  • الاسم هو اسم ملف تعريف الارتباط. يجب أن يكون لكل ملف تعريف ارتباط في مجال اسم مختلف ، لذلك يمكن للمتصفح الاحتفاظ بكافة ملفات تعريف الارتباط. بعد أن يأتي الاسم = بيانات المحتوى حيث تكون "بيانات المحتوى" هي البيانات التي سيتم تضمينها في ملف تعريف الارتباط. يمكن أن تكون هذه البيانات سلسلة نصية أو رقمًا ، وكما يمكن قوله ، يمكن أن يصل حجمها إلى 4 كيلوبايت.
  • expires = هو الأمر الخاص بتاريخ انتهاء الصلاحية. تاريخ انتهاء الصلاحية في تنسيق "Wdy، DD-Mon-YYYY HH: MM: SS GMT" (لا تسألني لماذا تم تعريفه لهذا التنسيق rediculous ، لأنني لا أعرف ذلك. لا يرى أي مستخدم تاريخ انتهاء الصلاحية ، فلماذا تضيع الذاكرة ، ومساحة القرص الصلب ، والنطاق الترددي في تواريخ طويلة؟). لا تقلق بشأن ذلك ، لأن معظم لغات البرمجة لها وظائف سهلة الاستخدام متاحة لك. يقوم المتصفح تلقائيًا بحذف ملفات تعريف الارتباط التي لها تاريخ انتهاء صلاحية في الماضي.
  • على نطاق و مسار تتطلب بعض التفسير أعمق. في مجال غير المجال الذي الكوكي سوف تكون نشطة. إذا كان النطاق هو "ads.google.com" ، فسيتم إرسال ملف تعريف الارتباط فقط إلى خادم ذلك النطاق ، وإذا كان النطاق هو "google.com" ، فسيتم إرسال ملف تعريف الارتباط إلى أي خادم لأي من النطاقات الفرعية جوجل ، بما في ذلك google.com نفسها.
  • على مسار غير مسار المجال الذي يتم إرسال ملف تعريف الارتباط. وهذا يعني أنه إذا تم تعيين المسار على "/ images /" وتم ضبط النطاق على "ads.google.com" ، فلن يتم إرسال ملف تعريف الارتباط إلا إلى الخادم إذا طلب المتصفح ملفًا من "ads.google كوم / صور / '. إذا تم تعيين المسار على "/" ، فسيتم إرسال ملف تعريف الارتباط إلى الخادم بغض النظر عن موقع الملف المطلوب على الخادم.

في الخطوة التالية ، سنراجع كيفية استخدام هذه الخصائص في لغات البرمجة.


الخطوة 2. كيفية إنشاء ملفات تعريف الارتباط وقراءتها

يمكن إنشاء ملفات تعريف الارتباط بعدة طرق ، ولكن لأغراض هذا البرنامج التعليمي ، سنركز على PHP و JavaScript.

PHP

أهم شيء يجب تذكره ، عند إنشاء ملف تعريف ارتباط في PHP ، هو أنه يجب عليك تعيين جميع ملفات تعريف الارتباط قبل إرسال أي بيانات إلى المتصفح . هذا يعني أنه يجب عليك دائمًا تهيئة ملفات تعريف الارتباط الجديدة قبل أي إخراج. يتضمن ذلك أوامر echo () أو print () وعلامات أو . بالطبع ، هناك بعض الاستثناءات ، لكن هذه قاعدة عامة.

يجب أن يبدو هذا مألوفًا الآن ، باستثناء $ secure و $ httponly . إن كلمة "آمن" هي فرض إرسال ملف تعريف الارتباط فقط في حالة إنشاء اتصال HTTPS ، وفي حالة تعيينه على "true" ، ويجب تعيينه على "false". يجعل 'httponly' ملف تعريف الارتباط متاحًا فقط من خلال بروتوكول HTTP ، مما يعني أن اللغات من جانب العميل ، مثل JavaScript و VBscript ، لا يمكنها الوصول إلى ملف تعريف الارتباط. وهذا يساعد على منع الأشياء السيئة ، مثل Cross Site Scripting ، ويجب تعيينه على true إذا لم تكن لديك أي نية لتحرير ملفات تعريف الارتباط من جانب العميل بلغة مثل JavaScript. أيضًا ، لمنع المفاهيم الخاطئة ، لا يعني "httponly" أنه لا يمكن إرسال ملفات تعريف الارتباط عبر HTTPS ، لأنه ما زال بإمكانها في الواقع. ومع ذلك ، يرجى ملاحظة أن المقتطف أعلاه يمكن أن يكون أصغر (ويجب أن يكون):

عظيم! يمكننا الآن إنشاء ملفات تعريف الارتباط ، ولكن يجب أن نتمكن من قراءتها أيضًا. لحسن حظنا ، يجعل PHP هذا الأمر سهلاً بمجرد أن يتم إنشاء ملف تعريف الارتباط. في PHP ، هناك متغير بيئة يسمى $ _COOKIE [] ، والذي يمكن استخدامه لاستخراج قيمة ملف تعريف الارتباط. لاستخدامها ، فقط أدخل اسم ملف تعريف الارتباط داخل الأقواس [] مثل:

هذا المتغير environtment يمكن استخدامها مثل أي دولة أخرى. تمامًا مثل $ _GET [] و $ _POST [] ، يمكن التعامل معه مباشرة كمتغير طبيعي (بمجرد التحقق من وجود ملف تعريف الارتباط بالفعل) إذا كنت تريد ذلك.

إذا كنت تريد تغيير تاريخ انتهاء الصلاحية أو المسار أو النطاق ، فيجب عليك الكتابة فوق ملف تعريف ارتباط موجود مع setcookie () باستخدام نفس اسم ملف تعريف الارتباط الأصلي. إذا قمت بتغيير تاريخ انتهاء الصلاحية ليكون في الماضي (time () - 30 * 60 على سبيل المثال) ، سيتم حذف ملف تعريف الارتباط.

جافا سكريبت

يمكن قراءة ملفات تعريف الارتباط وكتابة جانب العميل أيضًا. vs briefly. تستخدم JavaScript كائن document.cookie لمعالجة ملفات تعريف الارتباط ، كما هو موضح في المقتطف التالي:

وكما لاحظت ، فإن بناء الجملة هذا مشابه تمامًا لترميز بروتوكول HTTP. هذا يتميز بكونه أكثر تحكمًا ، ولكنه أيضًا يقدم بعض المشكلات المحتملة. في ما يلي مقتطف لقراءة ملف تعريف ارتباط.

اعلم اعلم؛ هذا هو الألم. لحسن الحظ بالنسبة لك يا رفاق ، أنا نشر بعض الوظائف السابقة مكتوبة أدناه (قد ترغب في جعل وظائفك الخاصة لأغراض التعلم رغم ذلك ، ويجب عليك!).

يرجى مراعاة أن هذه المقتطفات لا تحتوي على أي تدقيق للأخطاء.


الخطوة 3. ما يجب القيام به مع ملفات تعريف الارتباط

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

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

بالطبع ، هناك الكثير من الأشياء الممتعة التي يمكن القيام بها مع ملفات تعريف الارتباط من هذا! في الخطوة التالية ، سأعرض لك مثالاً على مقتطف رمز رائع.


الخطوة 4. كتابة كول السخافات

أخيرا! الآن يمكننا البدء في كتابة بعض الرموز الرائعة! يوجد أدناه مقتطف إضافي ، يستخدم ملفات تعريف الارتباط لإنشاء آلية relogin.

"تذكرني" مقتطف تسجيل الدخول

قبل أن نبدأ ، يحتوي هذا المقتطف على بعض كود MySQL. إذا لم تكن على دراية بـ MySQL ، فلا تقلق. على الرغم من أن هذا المقتطف صعب بعض الشيء ، إلا أنه يجب أن يكون مفهوما مع القليل من معارف PHP الأساسية وملفات تعريف الارتباط.

لإنشاء تطبيق "تذكرني" ، يجب أن يكون لدينا بعض الأشياء. أولاً ، نحتاج إلى جدول قاعدة بيانات يحتوي على اسم مستخدم وكلمة مرور وحقل تعريف. ثانيًا ، نحتاج إلى سلسلة أو رقم فريد لتحديد العملاء بأمان من خلال ملفات تعريف الارتباط (وهذا هو التحديد في جدول قاعدة البيانات). hs briefly. عندما تستخدم بشكل صحيح ، وهذا يوفر الأمن ممتازة.

gs briefly. يجب تجنب هذا في جميع الأوقات! vs briefly.

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


الخطوة 5. أفضل الممارسات

لقد وصلنا تقريبًا إلى نهاية هذا البرنامج التعليمي. في الختام ، أود أن أوجز بعض أفضل الممارسات:

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

استنتاج

آمل أن تكون قد تعلمت قليلاً من برنامج Nettuts + التعليمي اليوم. إذا كان لديك أي أسئلة ، فلا تتردد في ترك تعليق أو قول مرحبًا على Twitter .

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.