Ку́ки (, ) — небольшой набор данных, отправляемый веб-сервером и хранимый на компьютере пользователя без изменений и какой-либо обработки.
Веб-клиент (обычно веб-браузер) всякий раз при обращении к соответствующему сайту пересылает эти данные веб-серверу в составе HTTP-запроса. Обычно куки применяют для: аутентификации пользователя; хранения персональных предпочтений и настроек пользователя; отслеживания состояния сеанса доступа пользователя; хранения сведений статистики о пользователе.
Поддержки браузерами куки (приём, сохранение и последующая пересылка серверу сохранённого) требуют многие сайты с ограничениями доступа, большинство интернет-магазинов. Настройка оформления и поведения многих веб-сайтов по индивидуальным предпочтениям пользователя тоже основана на куки.
В потоке данных куки легко перехватить, сохранить или подменить (например, для получения доступа к учётной записи), если пользователь использует нешифрованное соединение с сервером. В группе риска — пользователи, выходящие в интернет при помощи публичных точек доступа Wi-Fi и не использующие при этом таких механизмов, как SSL и TLS. Шифрование позволяет также решить и другие проблемы, связанные с безопасностью передаваемых данных.
Большинство современных браузеров позволяет пользователям выбрать — принимать куки или нет, но их отключение делает невозможной работу с некоторыми сайтами. Можно включить автоматическое стирание куки при выключении браузера. Кроме того, по законам некоторых стран (например, согласно постановлению Евросоюза от 2016 года, см. общий регламент по защите данных) сайты должны в обязательном порядке запрашивать согласие пользователя перед установкой куки.
В рамках усиливающихся тенденций защиты приватности данных пользователей технологические компании, такие как Google, Apple и другие, предпринимают меры для ограничения использования сторонних куки. В первую очередь это оказывает влияние на рекламный рынок, заставляя его искать альтернативы. Прогнозируемый в будущем полный отказ от куки называют Post-cookie world.
Назначение Cookie используются веб-серверами для идентификации пользователей и хранения данных о них.
К примеру, если вход на сайт осуществляется при помощи cookie, то, после ввода пользователем своих данных на странице входа, cookie позволяют серверу запомнить, что пользователь уже идентифицирован и ему разрешён доступ к соответствующим услугам и операциям.
Многие сайты также используют cookie для сохранения настроек пользователя. Эти настройки могут использоваться для персонализации, которая включает в себя выбор оформления и функциональности. Например, Википедия позволяет авторизованным пользователям выбрать дизайн сайта. Поисковая система Google позволяет пользователям (в том числе и не зарегистрированным в ней) выбрать количество результатов поиска, отображаемых на одной странице.
Cookie также используются для отслеживания действий пользователей на сайте. Как правило, это делается с целью сбора статистики, а рекламные компании на основе такой статистики формируют анонимные профили пользователей для более точного нацеливания рекламы.
Понятие
В техническом плане cookie представляют собой фрагменты данных, изначально отправляемых веб-сервером браузеру. При каждом последующем посещении сайта браузер пересылает их обратно серверу. Без cookie каждый просмотр веб-страницы является изолированным действием, не связанным с просмотром других страниц того же сайта, с помощью же cookie можно выявить связь между просмотром разных страниц. Кроме отправки cookie веб-сервером, cookie могут создаваться скриптами на языках вроде JavaScript, если они поддерживаются и включены в браузере.
СпецификацииRFC 2109 и RFC 2965 — Механизм управления состояниями HTTP (IETF) указывают минимальные объёмы, которые должны предоставляться браузерами для хранения cookie. Так, браузер должен хранить по меньшей мере 300 cookie по 4096 байт каждая и по меньшей мере 20 cookie для одного сервера или домена.
Популярные браузеры имеют соответствующий максимум хранящихся cookie для каждого домена: Internet Explorer 6 — 20 Internet Explorer 7 — 20 Opera 9 — 30 Firefox 2.0 — 50 Google Chrome 58.0 — 176 Safari 10.0 — 242
На практике некоторые браузеры могут накладывать более жёсткие ограничения. К примеру, Internet Explorer предоставляет 4096 байт для всех cookie в одном домене.
Имена cookie нечувствительны к регистру в соответствии с разделом 3.1 RFC 2965.
Cookie могут устанавливать дату их удаления, в этом случае они будут автоматически удалены браузером в указанный срок. Если дата удаления не указана, cookie удаляются сразу, как только пользователь закроет браузер. Таким образом, указание даты истечения позволяет сохранить cookie более чем на один сеанс, и такие cookie называются постоянными. Например, интернет-магазин может использовать постоянные cookie для хранения кодов предметов, которые пользователь поместил в корзину покупок, — и даже если пользователь закроет браузер не совершив покупки, при последующем входе ему не придётся формировать корзину заново.
Хранение cookie также может ограничиваться в зависимости от веб-сервера, домена или поддомена, где они были созданы.
История По одной из версий, термин «куки» (печенье) происходит от «волшебного печенья» — набора данных, которые программа получает и затем отправляет обратно неизменными. В июне 1994 года Лу Монтулли пришла идея использовать их при веб-соединении. В то время он был сотрудником Netscape Communications, которая разрабатывала по заказу пакет электронной коммерции. Cookie стали решением проблемы надёжной реализации виртуальной корзины покупок.
С помощью Джона Джаннандреа в тот же год Монтулли написал начальную спецификацию cookie. Mosaic Netscape 0.9beta, выпущенная 13 октября 1994 года, уже поддерживала cookie. Cookie впервые начали использоваться вне лаборатории на сайте Netscape и определяли, посещал ли пользователь сайт ранее. Монтулли подал заявку на патент в 1995 году и получил его в 1998 году. Internet Explorer начал поддерживать cookie с версии 2, выпущенной в октябре 1995 года.
Хотя некоторые люди знали о существовании cookie уже в первом квартале 1995 года, широкая общественность узнала о них лишь после статьи в «Financial Times» от 12 февраля 1996 года. В том же году cookie оказались в центре внимания средств массовой информации, особенно из-за потенциальной угрозы приватности. Cookie были рассмотрены в Федеральной комиссии по торговле США в двух слушаниях в 1996 и 1997 годах.
Развитие спецификаций cookie на этом не остановилось. В частности, первые обсуждения формальной спецификации начались в апреле 1995 года. Была сформирована специальная рабочая группа в рамках IETF. В качестве отправной точки была выбрана спецификация Netscape. В феврале 1996 года рабочая группа определила сторонние cookie как серьёзную угрозу приватности. Выработанная спецификация была выпущена под названием RFC 2109 в феврале 1997 года. В ней указывалось, что сторонние cookie должны либо блокироваться, либо хотя бы не работать по умолчанию.
В то время рекламные компании уже вовсю использовали сторонние cookie и рекомендации RFC 2109 не поддерживались ни в браузерах Netscape, ни в Internet Explorer. Позднее, в октябре 2000 года, RFC 2109 была заменена новой спецификацией RFC 2965.
Типы cookie
Сессионные cookie Сессионные cookie, также известные как временные cookie, существуют только во временной памяти, пока пользователь находится на странице веб-сайта. Браузеры обычно удаляют сессионные cookie после того, как пользователь закрывает окно браузера. В отличие от других типов cookie, сессионные cookie не имеют истечения срока действия, и поэтому браузеры понимают их как сессионные.
Постоянные cookie Вместо того чтобы удаляться после закрытия браузера, как это делают сессионные cookie, постоянные cookie-файлы удаляются в определённую дату или через определённый промежуток времени. Это означает, что информация о cookie будет передаваться на сервер каждый раз, когда пользователь посещает веб-сайт, которому эти cookie принадлежат. По этой причине постоянные cookie иногда называются следящие cookie, поскольку они могут использоваться рекламодателями для записи о предпочтениях пользователя в течение длительного периода времени. Однако они также могут использоваться и в «мирных» целях, например, чтобы избежать повторного ввода данных при каждом посещении сайта.
Сторонние cookie Обычно атрибут домена cookie совпадает с доменом, который отображается в адресной строке веб-браузера. Это называется первый файл cookie. Однако сторонний файл cookie принадлежит домену, отличному от того, который указан в адресной строке. Этот тип файлов cookie обычно появляется, когда веб-страницы содержат контент с внешних веб-сайтов, например рекламные баннеры. Это открывает возможности для отслеживания истории посещений пользователя и часто используется рекламодателями для предоставления релевантной рекламы каждому пользователю.
В качестве примера предположим, что пользователь посещает www.example.org. Этот веб-сайт содержит рекламу от ad.foxytracking.com, которая при загрузке устанавливает файл cookie, принадлежащий домену рекламы (ad.foxytracking.com). Затем пользователь посещает другой веб-сайт www.foo.com, который также содержит рекламу от ad.foxytracking.com и устанавливает файл cookie, принадлежащий этому домену (ad.foxytracking.com). В конце концов, оба этих cookie будут отправлены рекламодателю при загрузке их рекламы или посещении их веб-сайта. Затем рекламодатель может использовать эти cookie для создания истории просмотров пользователя на всех веб-сайтах, на которых размещена реклама этого рекламодателя.
По состоянию на 2014 год некоторые веб-сайты устанавливали cookie для чтения более чем на 100 сторонних доменах. В среднем на одном веб-сайте было установлено 10 файлов cookie, при этом максимальное количество файлов cookie (как для сторонних, так и для третьих сторон) может превышать 800. Большинство современных веб-браузеров содержит настройки конфиденциальности, которые могут блокировать сторонние cookie.
Супер-cookie Супер-cookie — это cookie-файл с источником домена верхнего уровня (например, .ru) или общедоступным суффиксом (например, .co.uk). Обычные cookie, напротив, имеют происхождение от конкретного доменного имени, например example.com.
Супер-cookie могут быть потенциальной проблемой безопасности и поэтому часто блокируются веб-браузерами. Если браузер разблокирует вредоносный веб-сайт, злоумышленник может установить супер-cookie и потенциально нарушить или выдать себя за законные запросы пользователей на другой веб-сайт, который использует тот же домен верхнего уровня или общедоступный суффикс, что и вредоносный веб-сайт. Например, супер-cookie с происхождением .com может злонамеренно повлиять на запрос к example.com, даже если файл cookie не был создан с сайта example.com. Это может быть использовано для подделки логинов или изменения информации пользователя.
Публичный список суффиксов помогает снизить риск, который представляют супер-cookie. Публичный список суффиксов — это инициатива кросс-вендоров, целью которого является предоставление точного и актуального списка суффиксов доменных имен. В старых версиях браузеров может отсутствовать актуальный список, и поэтому они будут уязвимы для супер-cookie из определённых доменов.
Термин «supercookie» (супер-cookie) иногда используется для отслеживания технологий, которые не используют файлы cookie HTTP. В августе 2011 года на веб-сайтах Microsoft были обнаружены два таких механизма «супер-cookie»: синхронизация файлов cookie, которая порождает cookie MUID (уникальный идентификатор машины), и cookie ETag. Из-за внимания средств массовой информации Microsoft позже отключила этот код.
Зомби-cookie