Куки — файлы данных веб-браузера¶
Куки (от англ. cookies, в русском языке также используются формы «ку́ки», «ку́кис») — небольшие фрагменты данных, которые веб-сайт сохраняет в памяти браузера пользователя на его устройстве. Куки позволяют сайту запоминать сведения о пользователе между посещениями страниц и сеансами: состояние авторизации, содержимое корзины, настройки интерфейса, идентификаторы сессий и другую информацию.
¶История
Идея куки возникла в 1994 году в Netscape Communications. Инженер Лу Монтульи (Lou Montulli) разработал механизм хранения небольших фрагментов данных на стороне клиента для решения проблемы отсутствия «состояния» в протоколе HTTP — каждый запрос к серверу изначально считался независимым, и сервер не мог отличить повторное обращение одного пользователя от нового. Техническое название термина связано с «magic cookies» — понятием из информатики, обозначающим данные, передаваемые программе без изменения. Первый браузер с поддержкой куки — Netscape Navigator 2.0 (1995 год). В 1997 году формат куки был стандартизирован в документе RFC 2109, а в 2000 году — в RFC 2965; в 2011 году вышел RFC 6265, описывающий современный механизм.
¶Устройство и принцип работы
Когда пользователь открывает страницу, браузер отправляет на сервер HTTP-запрос, к которому автоматически прикладывается заголовок Cookie, содержащий ранее сохранённые данные сайта. Сервер может прочитать эти данные, а также установить новые куки через заголовок Set-Cookie в ответе.
Каждая куки-строка обычно содержит:
- имя и значение;
- срок действия (дата истечения);
- домен, к которому относится куки;
- путь на сайте;
- флаги безопасности (
Secure— передавать только по HTTPS,HttpOnly— запретить доступ из JavaScript,SameSite— ограничить передачу при межсайтовых запросах).
¶Классификация
| Тип | Время хранения | Назначение |
|---|---|---|
| Сессионные | до закрытия браузера | хранение состояния текущего визита (корзина, авторизация) |
| Постоянные | заданный срок (от минут до лет) | запоминание настроек, идентификация при повторных визитах |
| Собственные (first-party) | — | устанавливаются самим посещаемым сайтом |
| Сторонние (third-party) | — | устанавливаются доменами сторонних сервисов, встроенных на страницу (рекламные сети, счётчики аналитики) |
Сторонние куки являются основным механизмом межсайтового отслеживания пользователей и потому вызывают наибольшие претензии со стороны приватности.
¶Применение
Куки используются практически всеми современными сайтами. Основные сценарии:
- Аутентификация — после входа сервер сохраняет идентификатор сессии в куки, и браузер автоматически прикладывает его к последующим запросам.
- Персонализация — язык интерфейса, тема оформления, региональные настройки.
- Интернет-магазины — содержимое корзины сохраняется между переходами по каталогу.
- Аналитика и реклама — сторонние куки позволяют собирать статистику посещаемости и показывать рекламу с учётом интересов пользователя.
¶Приватность и регулирование
Возможность сторонних куки отслеживать пользователя на разных сайтах стала предметом правового регулирования. В Европейском союзе директива ePrivacy и Общий регламент по защите данных (GDPR, 2018) требуют информировать пользователя о сборе данных и получать согласие на несущественные куки. В России аналогичные требования установлены Федеральным законом № 152-ФЗ «О персональных данных» и разъяснениями Роскомнадзора: оператор обязан уведомлять пользователя о использовании файлов cookie и получать его согласие, если данные обрабатываются.
В ответ на давление регуляторов крупные браузеры ограничивают сторонние куки: Safari (WebKit) блокирует их по умолчанию с 2020 года, Firefox — с 2021 года. Google, чей браузер Chrome занимает подавляющую долю рынка, несколько лет разрабатывал замену сторонним куки в проекте Privacy Sandbox, однако в 2024 году отказался от полного отказа от сторонних куки в пользу подхода с выбором пользователя и расширенного контроля.
¶Ограничения и безопасность
Куки хранятся в открытом виде и могут быть украдены при перехвате трафика, поэтому их передача по незащищённому HTTP небезопасна; флаг Secure и использование HTTPS снижают этот риск. Доступ к куки из JavaScript (через document.cookie) делает их уязвимыми для атак типа XSS — для защиты от этого используется флаг HttpOnly. Механизм SameSite (значения Strict, Lax, None) ограничивает отправку куки при межсайтовых запросах и снижает уязвимость к CSRF-атакам.
Источники:
- RFC 6265: HTTP State Management Mechanism
- Л. Монтульи. Cookie specification history (Netscape, 1994–1995)
- GDPR (Regulation (EU) 2016/679), ePrivacy Directive 2002/58/EC
- Федеральный закон РФ № 152-ФЗ «О персональных данных»
- Apple Safari Intelligent Tracking Prevention (Technical Documentation)
- Google Privacy Sandbox documentation (2024)
