مقدمة ملفات تعريف الارتباط
أولاً، نقدم مقدمة مختصرة عن ملفات تعريف الارتباط ونشرح كيفية استخدام ASP للحفاظ على ملفات تعريف الارتباط.
ملف تعريف الارتباط هو ملف صغير يتم تخزينه على جهاز الكمبيوتر الخاص بالعميل، مما يعني أنه في كل مرة يقوم فيها مستخدم بزيارة موقعك، يمكنك وضع ملف يحتوي على المعلومات ذات الصلة سرًا على محرك الأقراص الثابتة الخاص به. يمكن أن يحتوي هذا الملف تقريبًا على أي معلومات تريد إعدادها، بما في ذلك معلومات المستخدم وحالة الموقع والمزيد. في هذه الحالة، هناك خطر محتمل: قد تتم قراءة المعلومات من قبل المتسللين. لمنع حدوث هذه المشكلة، إحدى الطرق الفعالة هي أنه لا يمكن الوصول إلى ملف تعريف الارتباط إلا من خلال المجال الذي قام بإنشائه. وهذا يعني: على سبيل المثال، يمكن لـ ytu.edu.cn الوصول إلى ملفات تعريف الارتباط التي تم إنشاؤها بواسطة ytu.edu.cn فقط. بشكل عام، هذه ليست مشكلة، ولكن ماذا لو كنت بحاجة إلى مشاركة معلومات المستخدم المخزنة في ملفات تعريف الارتباط مع موقعين مختلفين على نطاقين مختلفين؟ بالطبع، يمكنك اختيار نسخ معلومات المستخدم، ولكن إذا كنت بحاجة إلى ذلك، فيمكنك ذلك فقط قم بالتسجيل في موقع واحد وتصبح مستخدمًا مسجلاً لموقع آخر؟ أو، ماذا لو كان الموقعان يشتركان في قاعدة بيانات المستخدم ويطلبان من المستخدمين تسجيل الدخول تلقائيًا؟ في هذا الوقت، تعد مشاركة ملفات تعريف الارتباط عبر النطاقات هي أفضل خطة للحل.
هنا، دعونا نلقي نظرة أولاً على بعض أكواد معالجة ملفات تعريف الارتباط الخاصة بـ ASP لتسهيل الرجوع إليها في المستقبل.
"إنشاء ملف تعريف الارتباط."
Response.Cookies(MyCookie).Expires=Date+365
Response.Cookies(MyCookle).Domain=mydomaln.com
Response.Cookies(MyCookle)(Username)=strUsername
Response.Cookies(MyCookle)(Password)=strPassword
تعد قراءة ملفات تعريف الارتباط وكتابتها أمرًا بسيطًا للغاية. يقوم الكود أعلاه بإنشاء ملف تعريف ارتباط وتعيين خصائص ملف تعريف الارتباط: المجال ووقت انتهاء الصلاحية والقيم الأخرى المخزنة في ملف تعريف الارتباط. هنا، strUsename وstrPassword عبارة عن متغيرات تم تعيينها في مكان ما من قبل. ثم اقرأ في ملف تعريف الارتباط من خلال العبارة التالية.
"اقرأ ملف تعريف الارتباط."
datExpDate=Request.Cookies(MyCookie)
strDomaln=Request.Cookies(MyCookle).Domain
strUsername=Request.Cookies(MyCookle)(اسم المستخدم)
strPassword=Request.Cookies(MyCookie)(كلمة المرور)
للحصول على معلومات أكثر تفصيلاً، الرجاء الرجوع إلى معلومات ASP.
ينجز
إن الحيلة في مشاركة ملفات تعريف الارتباط ببساطة هي إعادة التوجيه، والعملية العامة هي:
1. ينقر المستخدم على siteA.com.
2. إذا لم يكن لدى المستخدم ملف تعريف ارتباط لـ siteA.com، فأعد توجيه المستخدم إلى siteB.com.
3. إذا كان لدى المستخدم ملف تعريف ارتباط خاص بـ siteB.com، فأعد توجيه المستخدم مرة أخرى إلى siteA.com مع علامة خاصة (موضحة أدناه)، وإلا فما عليك سوى إعادة توجيه المستخدم إلى siteA.com.
4. قم بإنشاء ملف تعريف الارتباط على siteA.com.
يبدو الأمر بسيطًا، ولكن قم بتحليله بعناية: يشترك siteA.com وsiteB.com في نفس إعدادات المستخدم، لذلك إذا كان المستخدم لديه ملف تعريف ارتباط لـ siteB.com (مسجل بالفعل)، فيمكن لموقع siteA.com أيضًا قراءة ملف تعريف الارتباط وتوفير أذونات ملفات تعريف الارتباط صفات. بهذه الطريقة، سيبدو المستخدمون الذين يزورون siteA.com وكأنهم زاروا siteB.com.
يجب تنفيذ هذا الفحص في ملف cookies.inc الموجود في siteA.com. دعونا نلقي نظرة على هذا الرمز:
ل-1
"يقوم موقع SiteA.com بفحص ملفات تعريف الارتباط
إذا كانت Request.Querystring(محددة)<>صحيح إذن
إذا لم يكن Request.Cookies(SiteA_Cookie).Haskeys إذن
"إعادة التوجيه إلى siteB.com."
Response.Redlrect(http://www.siteB.com/cookie.asp)
انتهي إذا
انتهي إذا
إذا كان لدى المستخدم ملف تعريف ارتباط لموقع siteA.com، فلا داعي لفعل أي شيء؛ حيث سيتم استخدام عبارة if الأولى لإزالة الحلقة اللانهائية. دعونا نلقي نظرة على ملف cookie.asp الموجود على siteB.com للحصول على مزيد من الفهم.
1-2
'"SiteB.com."
"تحقق من ملفات تعريف الارتباط."
إذا لم يكن Request.Cookies(SlteB_Cookle).Haskeys إذن
"إعادة التوجيه إلى siteA.com."
Response.Redirect(http://www.siteA.com/index.asp&?checked=True)
آخر
"الحصول على اسم المستخدم."
strUsername=Request.Cookies(SiteB_Cookie)(اسم المستخدم)
'أعد المستخدم إلى siteA.com بعلامة خاصة
Response.Redlrect(http://www.siteA.com/index.asp&?checked=True&identrfer=&strUsername)
انتهي إذا
إذا كان المستخدم لا يزال لا يملك ملف تعريف ارتباط على siteB.com، فأرسله مرة أخرى إلى siteA.com وأخبر التطبيق أنك قمت بفحص ملف تعريف الارتباط من خلال توفير معلمة تسمى checkd في الاستعلام. بخلاف ذلك، أرسل المستخدم مرة أخرى إلى siteB.com واخرج من الحلقة.