راهنمای سایت

کمک می‌خواهید؟ شماره تماس:‌ 88569886 (۰۲۱) ۹۸+ | خدمات مشتریان  | شرایط برگشت محصول    | پرسش و پاسخ‌های رایج


کوکی‌ها (Cookies) داده‌های کوچک متنی هستند (و نه چیز دیگر!) که وبسایت‌ها هنگام مرور، بر روی مرورگر کاربر ذخیره کرده معمولاً محتوی آن‌ها رشته‌هایی در رابطه با شماره شناسایی کاربران است. این داده‌ها به صورت متن ساده (Text) ذخیره شده و خطرناک نیستند؛ چون مکانیزم آن‌ها فقط برای حفظ و خواندن داده‌های متنی طراحی شده است که قابل دسترسی از طریق سایت‌ها یا از طریق خود کاربراند بنابراین کوکی نمی‌تواند حاوی ویروس یا بدافزار دیگری باشد. کوکی‌ها اغلب دارای تاریخ انقضاء هستند که از طرف سرور تعیین می‌شوند و در زمان مشخص شده، مرورگر آن‌ها را پاک می‌کند؛ بنابراین کوکی‌ها اغلب حالت موقتی دارند.

مهمترین هدف استفاده از کوکی‌ها شناسایی کردن کاربران توسط وبسایت‌ها است؛ برای مثال زمانی که شما در وبسایتی به حساب کاربری خود وارد می‌شوید، وبسایت درخواست ذخیره کردن کوکی یا کوکی‌هایی را به مرورگر شما ارسال می‌کند. به واسطه این کوکی‌ها، زمانی که کاربر دوباره به آن وبسایت مراجعه می‌کند، نیازی به ورود مجدد ندارد. این عمل تا زمانی که تاریخ انقضای کوکی فرا نرسد یا به صورت خودکار یا دستی حذف نشود انجام می‌پذیرد.

کوکی‌ها دارای کاربردهای فراوانی هستند که در این قسمت به تعدادی از آن‌ها اشاره می‌کنیم:

           • شناسایی کاربران برای جلوگیری از وجود مجددشان (ورود خودکار)

           • آمارگیری و جلوگیری از انجام یک عمل بیش از دفعات مشخص شده

           • انجام تنظیمات موقتی و شخصی سازی‌ها توسط کاربر

           • استفاده به عنوان اهداف تبلیغاتی و مانیتور کردن کاربران

کوکی‌ها پاکت‌هایی هستند که نقش مهمی در فرایند نشست سازی بین مرورگر و سرور را دارند. اگرچه وجود آن‌ها کاملاً ضروری نیست اما امروزه اکثر وبسایت‌ها و طراحان آن‌ها بر روی کوکی‌ها حساب باز کرده اند. اما چرا وجود مکانیزم کوکی بسیار مهم است؟ پاسخ به این سوال ساده است، چون HTTP یک پروتکل Stateless بوده و بین درخواست‌ها و پاسخ‌های آن هیچ ارتباط منطقی وجود ندارد؛ به عبارت ساده تر، این پروتکل فراموش کار است. راه حل این مشکل ایجاد یک نشست پایدار بین مرورگر و سرور است. تعریف خلاصه نشست این است که یک ارتباط به صورت پایدار برقرار شده و به طرفین (در اینجا، معمولاً سرور) این امکان را می‌دهد که یکدیگر را شناسایی کنند.

حال در نسخه HTTP 1/1 به بعد، مکانیزم کوکی وارد عمل شده و این نشست‌ها را با ذخیره کردن داده‌های متنی ساده، ایجاد می‌کند. به این ترتیب کاربر User1 با کاربر User2 به صورت کاملاً متمایز از یکدیگر، با سرور مرتبط شده و در نشست خود فعالیت می‌کنند. البته این مکانیزم می‌تواند از طرف کاربر غیرفعال شده و از ایجاد نشست از طریق کوکی جلوگیری کند.

با توجه به این که مرورگر به صورت خودکار وظیفه ذخیره، بازیابی و حذف کوکی‌ها را دارد و از طرفی برای اولین بار یک وبسایت که از کوکی استفاده می‌کند را مرور می‌کنید، درخواست‌های ذخیره کردن کوکی به مرورگر فرستاده می‌شوند و مرورگر نیز آن‌ها را ذخیره می‌کند. مثل این که دو نفر برای اولین بار یکدیگر را ملاقات می‌کنند و شخص اول، رمزی را برای شناساندن شخص دوم به خود، به وی می‌دهد. سپس در مرور دوباره آن صفحه (با در نظر گرفتن این که پارامتر مسیر و دامین که در بخش بعدی توضیح داده شده است، تعیین نشده است)، مرورگر کوکی‌ها را همراه با هدر درخواست صفحه به وبسایت ارسال می‌کند. در نتیجه وبسایت با مقایسه این کوکی‌ها، نشست جاری را ایجاد نمونه یا آن را ادامه می‌دهد. مانند آن که شخص دوم، در ملاقات‌های دیگر، آن کد شناسایی را به شخص اول می‌دهد و به این ترتیب شخص اول وی را می‌شناسد.

در نظر بگیرید که به دلایلی از جمله غیرفعال کردن کوکی‌ها، استفاده از مکانیزم ذخیره و بازیابی آن غیرممکن باشد. در این حالت بار اولی که کاربر صفحه‌ای را مرور می‌کند، هیچ کوکی‌ای ذخیره نمی‌شود. مثل آن که دو شخص یکدیگر را ملاقات می‌کنند اما نام یکدیگر را از هم نمی‌پرسند. سپس در مرورهای بعدی، به دلیل آن که هیچ کوکی‌ای رد و بدل نشده است، امکان تشخیص کاربر از طرف وبسایت از طریق نشست‌های کوکی وجود نخواهد داشد. مثل آن که دو نفر قبلی، در ملاقات‌های بعدی نیز اصلاً یکدیگر را نمی‌شناسند، چون هیچ نشانه‌ای از هم ندارند.

هر کوکی دارای 7 شاخص یا ویژگی است که دو مورد اولی آن الزامی و بقیه موارد اختیاری هستند. شاخص‌های کوکی عبارت اند از:

           • نام کوکی (الزلمی)

           • محتوای کوکی (الزامی)

           • تاریخ انقضاء

           • مسیر و دامین کوکی

این ویژگی‌ها به سرورها این اجازه را می‌دهد تا مشخص کنند که یک کوکی در کدام صفحه درخواست شده باید به همراه هدر (Header) ارسال شود. چون کوکی‌های ساده بدون این پارامتر در همه صفحات سایت به همراه هدر ارسال می‌شوند، این ویژگی تعبیه شده تا مشخص شود که مرورگر در کدام صفحه خاص یا کدام مسیر یا دامین باید آن کوکی را برگرداند.

           • ارسال من

از آن جایی که کوکی‌ها داده‌های متنی‌ای هستند که می‌توانند گاهاً شامل داده‌های حساس نیز باشند، درحالی که پروتکل HTTP نیز امن نیست و از طرفی کوکی‌ها در هدر درخواست قرار می‌گیرند، بنابراین با دزدیدن این هدرها می‌توان به اطلاعات حساس دسترسی داشت. به همین خاطر Flag ای ساخته شده است که این اجازه را به سرورها و وبسایت‌ها می‌دهد که با مشخص کردن آن، انتقال کوکی را از طریق پروتکل امن (SSL) یا غیر امن (HTTP) محدود کند. به این صورت با مشخص کردن حالت امن، کوکی تنها درصورتی که از پروتکل HTTPS استفاده شود به وبسایت بازگردانده می‌شود.

           • مانع از دسترسی سایر پروتکل‌ها

هیچ مدیر سایتی وجود ندارد که از امنیت بیشتر بدون محدود کردن قابلیت‌های سایت خود، بدش بیاید. همانطور که ممکن است بدانید، از طریق برخی از روش‌های حمله مثل XSS می‌توان به کوکی‌های کاربران دست یافت. حملاتی مثل XSS برپایه اجرای کدهای جاوااسکریپت به صورت غیرمنتظره طراحی می‌شوند. حال اینکه جاوااسکریپت پروتکل HTTP نیست پس چه بهتر که تنها راه انتقال کوکی‌ها را به پروتکل  HTTPو البته HTTPS محدود کرد. به این ترتیب از حملاتی مثل XSS نیز به شدت جلوگیری می‌شود. برای این کار می‌توان از Flag ـه HttpOnly استفاده کرد.

کوکی‌ها که ذاتاً برای حفظ داده‌های کوچک ساخته شده اند، دارای محدودیت‌هایی نیز هستند. این محدودیت‌ها طبق استاندارد RFC 6265 برای مرورگرها به صورت حداقل تعریف شده اند:

           • درنظر گرفتن حجم حداقل ۴۰۹۶ بایت (۴ کیلوبایت) برای هر کوکی (شامل مجموع کل پارامترها و محتوا)

           • اجازه دادن حداقل ۵۰ کوکی برای هر دامین

           • قابلیت ذخیره کردن حداقل ۳۰۰۰ کوکی (ممکن است از دامین‌های مختلف باشد)

اگرچه این استاندارد برای حداقل ظرفیت مرورگرها درنظر گرفته شده است، اما حداکثر آن‌ها با هم تفاوت دارد. به همین دلیل طراحان و برنامه نویسان وب باید به این نکته توجه داشته باشند که بهتر است کوکی‌ها را با محدودیت استاندارد تعریف شده سازگار کنند.


تلفن تماس

دفتر فروش:

88569886 (۰۲۱)

برای دریافت خبرنامه ثبت نام کنید