یک فایل متنی که از طرف یک وبسایت به مرورگر فرستاده میشود تا اطلاعات مختلف مورد نیاز آن سایت را برای استفادههای بعدی ذخیره کند، اما کوکیها همانقدر که ساده و نامآشنا هستند، میتوانند مرموز و بحثبرانگیز نیز باشند.
آشپز کوکیها
ریشه اصطلاح cookie به زمان یونیکس و magic cookie، بسته دادهای که برنامهای دریافت کرده و بدون تغییر پس میداده است، برمیگردد.
اصطلاح magic cookie نیز توسط برنامهنویسان از fortune cookies یا کلوچههای شانس گرفته شده بود؛ کلوچههای کوچکی که داخلشان یک پیام وجود دارد.
اما کاربرد امروزی کوکیها که استفاده در مرورگرهاست، ایده یکی از کارمندان شرکت نتاسکیپ به نام لو مونتولی در سال 1994 بود.
او برای اینکه سرورهای شرکتهای فروش آنلاین مجبور نباشند ریز اطلاعات مربوط به تراکنشهای مشتریان را نگه دارند، پیشنهاد ذخیره این اطلاعات روی رایانه هر کاربر به کمک کوکیها را مطرح کرد.
مروگر نتاسکیپ که آن زمان هنوز در ابتدای راه بود، در نسخه 9/0 پشتیبانی از این سیستم را قرار داد و پس از آن نیز در نسخه دوم اینترنتاکسپلورر قابلیت استفاده از کوکیها پیادهسازی شد.
جالب اینجاست که با وجود پذیرفتن کوکیها از سایتهای مختلف توسط این دو مرورگر به صورت پیشفرض، کاربران تا دو سال بعد یعنی تا 1996، متوجه ذخیره این کوکیها نمیشدند.
در این سال، با چاپ مقالهای در روزنامه فایننشال تایمز، به یکباره توجه رسانهها و کاربران به کوکیها و مسائل حواشی آن، بهخصوص بحث حریم خصوصی معطوف شد که تا چند سال پس از آن نیز به انحای مختلف ادامه یافت.
کارکرد کوکیها
روند عملکرد یک کوکی عملا بده بستان میان سایت و مرورگر شماست. هنگامی که شما وارد یک سایت میشوید، آن سایت اطلاعاتی را به مرورگر میدهد تا در رایانه شما ذخیره کند.
این بسته اطلاعاتی همان کوکی است که میتواند شامل موارد مختلفی باشد که آن سایت از یک درخواست به درخواست بعدی نیاز دارد تا بتواند شما را دنبال کند.
پس از اینکه این کوکی ذخیره شد، دفعه بعد که مرورگر شما درخواستی به آن سرور بفرستد (با کلیک روی یک لینک یا افزودن چیزی به سبد خرید یا حتی بارگذاری یک تصویر)، این کوکی دوباره به آن سایت فرستاده میشود. کوکیها سه کاربرد اصلی دارند:
مدیریت session ها: سایتهایی که کاربران در آنها حساب کاربری دارند (مثلا جیمیل)، در بار اول از کاربر اطلاعات کاربری پرسیده میشود و با ذخیره یک علامت شناسه (token) در یک کوکی، در دفعات بعدی کاربر بدون وارد کردن این اطلاعات وارد سرویس میشود.
شخصیسازی: کوکیها میتوانند برای ذخیره ترجیحات کاربران مورد استفاده قرار گیرند. برای مثال، اینکه برای یک کاربر چه تعداد نتایج در یک صفحه جستوجوی گوگل نشان داده شود، در یک کوکی ذخیره میشود.
رهگیری: برخی سایتها از کوکیهای رهگیر برای نگهداری اطلاعات حرکت کاربران در سایت استفاده میکنند و میتوانند با آنالیز آنها، اطلاعاتی را مانند اینکه کاربران از چه صفحاتی بیشتر بازدید میکنند، کسب کنند.
اگر بخواهیم کمی دقیقتر نگاه کنیم، دلیل وجود کوکیها، «بیحالت» بودن پروتکل HTTP است. به عبارت دیگر، هر درخواستی که از مرورگر شما فرستاده میشود مستقل از دیگری است.
بر این اساس، سایتها نیاز به روشی برای تشخیص شما از دیگر بازدیدکنندگان دارند که این کار به وسیله ذخیره کوکیها انجام میشود. از نظر اندازه داده، مرورگرها باید سه امکان قراردادی را داشته باشند تا از کوکیها پشتیبانی کنند:
1) قابلیت پشتیبانی از کوکیهایی تا
4 مگابایت
2) امکان ذخیره حداقل 50 کوکی به ازای هر وبسایت
3) امکان ذخیره در مجموع حداقل
3000 کوکی
انواع کوکیها
کوکیها را از یک دیدگاه میتوان به دو نوع «شخص اول» (first-party) و «شخص ثالث» (third-party) تقسیم کرد.
کوکیهای شخص اول، کوکیهای متعلق به سایتهایی است که شما بازدید کردهاید. در مقابل، کوکیهای شخص ثالث از یک اسکریپت موجود در یک صفحه تولید میشود که مربوط به آن سایت نیست.
اسکریپتهای تبلیغاتی مثل سرویس تبلیغاتی گوگل، مهمترین استفادهکنندگان از این مدل کوکیها هستند. یکی از مسائل منفی در مورد اینگونه کوکیها، تعداد آنهاست که گاهی به 800 عدد میرسد.
البته بیشتر مرورگرهای مدرن امکاناتی برای مسدود کردن این کوکیها در اختیار کاربران قرار میدهند.
از نظر زمان و انقضا، کوکیها میتوانند جلسهای (session) یا پیوسته (persistent) باشند. کوکیهای جلسهای که با نام کوکیهای در حافظه (in-memory) یا گذرا (transient) نیز شناخته میشوند، کوکیهایی هستند که فقط در حافظه موقت و برای مدتی که کاربر در یک سایت است نگهداری میشوند.
مرورگرها معمولا این کوکیها را هنگام بسته شدن از حافظه پاک میکنند. نکته تمایز این کوکیها نسبت به بقیه، اختصاص نیافتن تاریخ انقضا به آنهاست که بر همین اساس نیز توسط مرورگرها شناخته میشوند.
در نقطه مقابل، کوکیهای مداوم قرار دارند که هنگام بستهشدن مرورگر منقضی نمیشوند، بلکه یک تاریخ انقضای خاص یا یک بازه زمانی مصرف دارند.
اطلاعات این کوکیها با هر بار بازدید به سایت یا سرویسی که متعلق به آن است ارسال میشود. بر پایه این نوع کارکرد، کوکیهای مداوم گاهی با عنوان کوکیهای «رهگیر» (tracking) نیز شناخته میشوند.
زیرا تبلیغکنندگان میتوانند از آنها برای ضبط عادتهای اینترنتی کاربران در یک بازه زمانی (عموما طولانی) بهره ببرند.
البته این کوکیها کاربردهای مفیدتری نیز مانند نگهداری اطلاعات کاربران دارند. مثلا شما وقتی برای یک بار وارد جیمیل میشوید، پس از بسته شدن مرورگر و حتی گذشت چند روز، دوباره میتوانید بدون وارد کردن اطلاعات کاربری وارد اینباکستان بشوید. این کار به کمک کوکیهای مداوم امکانپذیر است.
محتوای کوکیها
هر کوکی شامل پارامترهایی از جمله Name، Content، Path و Expires است. برخی از این پارامترها مانند نام و محتوا اجباری است و تمام کوکیها باید حاوی آنها باشد، اما پارامترهایی مثل Expires مخصوص کوکیهای پیوسته و مداوم بوده و کوکیهای جلسهای فاقد آن هستند.
البته وجود پارامترهای دیگر هم در یک کوکی اختیاری و براساس تصمیم سایتی است که آن را برای ذخیره به مروگر میدهد.
امنیت کوکیها
یکی از مباحثی که همیشه درباره کوکیها، بهخصوص کوکیهای شخص ثالث مطرح بوده امنیت و حریم خصوصی است.
البته باید توجه داشت کوکیها فقط فایلهای متنی سادهای هستند که به خودی خود مضر نبوده و حتی اگر در آنها اطلاعات شخصی نیز ذخیره شده باشد.
بهصورت خودکار فقط برای سایتی که متعلق به آن است فرستاده میشود و سایتهای دیگر نمیتوانند به آنها دسترسی داشته باشند. با این حال دو مسأله امنیتی در این زمینه مطرح است:
مسأله اول اینکه به کاربران درباره ذخیره کوکی توسط یک سایت اطلاعرسانی شود و علاوه بر این، کاربران امکان جلوگیری از نصب کوکیها یا حذف آنها را داشته باشند.
این مسائل توسط اتحادیه اروپا بررسی و به کاربران این حقوق داده شده است. بر این اساس، سایتها ملزم به رعایت آنها هستند و اگر شما امروزه به سایتهای مختلفی مثل گوگل و ویکیپدیا بروید، با پیامی مبنی بر اینکه این سایت از کوکیها استفاده میکند روبهرو میشوید.
البته این پیام تنها در حد اطلاعرسانی است و به شما امکان جلوگیری از آن داده نمیشود. خوشبختانه مرورگرهای امروزی مثل فایرفاکس یا کروم این قابلیت را در اختیار شما قرار میدهند تا جلوی ذخیره کوکیها را از همه سایتها یا از سایتهای خاصی بگیرید.
این مرورگرها همچنین امکانات دیگری مانند نمایش کوکیها و حذف همگی یا تکتک آنها را نیز ارائه میکند. برای نمونه، در فایرفاکس، تغییر تنظیمات مربوط به کوکیها در قسمت privacy قرار دارد که در آنجا حتی امکان نپذیرفتن کوکیهای شخص ثالث نیز گنجانده شده است.
مسأله دوم، شنود و دزدی کوکیهاست که بهخصوص در مورد کوکیهای جلسهای به دلیل وجود امکان لاگین یک فرد به کمک آنها، مسأله حادتر نیز میشود.
برای نمونه، یک هکر اتصال شما را به یک سایت شنود میکند که در میان اطلاعات دریافتی، کوکیهای فرستادهشده از آن سایت نیز وجود دارد و در صورت دسترسی به آنها، امکان دزدی اطلاعات بیشتری از سایت مقدور خواهد بود.
راهحل اساسی مقابله با اینگونه حملات، استفاده از پروتکل HTTP امن یا HTTPS است که اجازه شنود و دسترسی به اطلاعات انتقالی را از افراد غیرمجاز میگیرد.
محمود صادقی
ضمیمه کلیک
در یادداشتی اختصاصی برای جام جم آنلاین مطرح شد
یک کارشناس روابط بینالملل در گفتگو با جامجمآنلاین مطرح کرد
در گفتگو با جام جم آنلاین مطرح شد
در گفتگو با جام جم آنلاین مطرح شد