Открыть сервис

Cookie lifetime

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

История и развитие

Понятие cookie было впервые внедрено в 1994 году сотрудником компании Netscape Communications Лу Монтулли (Lou Montulli) для решения задачи сохранения состояния в интернет-магазинах (например, для хранения содержимого корзины). Изначально cookie не имели строго определённого времени жизни — браузеры хранили их до закрытия окна или до явного удаления пользователем. Однако уже в первых спецификациях Netscape (1994) и последующих документах IETF (RFC 2109, 1997; RFC 2965, 2000) была введена возможность задания атрибута Expires (дата истечения) и Max-Age (максимальный возраст в секундах). Современный стандарт RFC 6265 (2011) уточнил правила обработки cookie lifetime, сделав Max-Age приоритетным над Expires в случае конфликта.

Механизм работы

Cookie lifetime определяется двумя основными атрибутами, которые сервер передаёт в HTTP-заголовке Set-Cookie:

  • Expires — задаёт конкретную дату и время в формате HTTP (например, Wed, 21 Oct 2025 07:28:00 GMT). После наступления указанного момента браузер автоматически удаляет cookie.
  • Max-Age — задаёт количество секунд, в течение которого cookie считается действительным с момента его установки. Например, Max-Age=3600 означает, что cookie будет храниться один час. Если атрибут Max-Age равен нулю или отрицательному числу, браузер немедленно удаляет cookie.

Если ни один из этих атрибутов не указан, cookie считается сессионным (session cookie) — его lifetime ограничивается временем работы текущего сеанса браузера. Сессионные cookie хранятся в оперативной памяти и удаляются при закрытии браузера (или вкладки, в зависимости от реализации). Некоторые современные браузеры (например, Google Chrome) могут восстанавливать сессионные cookie при повторном открытии, если включена функция восстановления сеанса.

Пример установки cookie с lifetime

`` Set-Cookie: session_id=abc123; Expires=Wed, 21 Oct 2025 07:28:00 GMT; Path=/ Set-Cookie: user_pref=dark_theme; Max-Age=86400; Path=/ ``

Первый cookie (session_id) будет храниться до 21 октября 2025 года, второй (user_pref) — 24 часа (86400 секунд).

Классификация по времени жизни

Cookie можно разделить на три основных типа в зависимости от lifetime:

Сессионные cookie (session cookies)

  • Характеристика: не имеют атрибутов Expires или Max-Age.
  • Хранение: в оперативной памяти браузера.
  • Удаление: при закрытии браузера или вкладки.
  • Применение: временные данные, такие как идентификатор сессии, токены аутентификации на время одного сеанса, состояние корзины в интернет-магазине.

Постоянные cookie (persistent cookies)

  • Характеристика: имеют атрибут Expires или Max-Age с положительным значением.
  • Хранение: на жёстком диске или в файловой системе браузера.
  • Удаление: по истечении заданного срока или при ручном удалении пользователем.
  • Применение: долгосрочные настройки пользователя (язык, тема оформления), данные аутентификации с возможностью «запомнить меня», аналитические метки (например, Google Analytics).

Cookie с нулевым lifetime

  • Характеристика: Max-Age=0 или Expires в прошлом.
  • Действие: браузер немедленно удаляет cookie (используется для удаления ранее установленных cookie).

Влияние на безопасность и конфиденциальность

Cookie lifetime имеет прямое отношение к безопасности веб-приложений и приватности пользователей. Слишком длительное время жизни постоянных cookie может привести к следующим рискам:

  • Утечка сессионных данных: если злоумышленник получит доступ к cookie с длительным lifetime (например, через XSS-атаку или перехват трафика), он сможет использовать его для несанкционированного доступа к учётной записи пользователя в течение длительного времени.
  • Отслеживание пользователей: рекламные и аналитические сервисы (например, Google Analytics, Яндекс.Метрика) используют cookie с длительным lifetime (до 2 лет) для создания профиля поведения пользователя. Это вызывает обеспокоенность с точки зрения конфиденциальности, особенно в контексте требований законодательства (например, Федеральный закон «О персональных данных» № 152-ФЗ в РФ, GDPR в ЕС).
  • Уязвимость к CSRF-атакам: cookie с длительным lifetime могут быть использованы в межсайтовой подделке запросов (CSRF), если не применяются дополнительные меры защиты (например, SameSite-атрибут).

Для снижения рисков рекомендуется:

  • Устанавливать минимально необходимый lifetime (например, для сессионных cookie — без срока, для постоянных — не более нескольких дней или недель).
  • Использовать атрибут Secure (передача только по HTTPS) и HttpOnly (запрет доступа через JavaScript).
  • Применять атрибут SameSite (значения Strict или Lax) для предотвращения CSRF.

Управление lifetime в современных браузерах

Современные браузеры предоставляют пользователям возможность управлять cookie lifetime на уровне настроек. Например:

  • Google Chrome: позволяет удалять cookie при закрытии браузера (включение опции «Очищать cookie и данные сайтов при выходе из Chrome»), а также устанавливать ограничения на срок хранения для отдельных сайтов.
  • Mozilla Firefox: имеет режим «Усиленная защита от отслеживания», который автоматически ограничивает lifetime cookie от трекеров (до 24 часов).
  • Safari: по умолчанию блокирует сторонние cookie и ограничивает lifetime для всех cookie (до 7 дней для cookie, установленных через JavaScript).
  • Microsoft Edge: поддерживает аналогичные функции, включая возможность автоматического удаления cookie при закрытии.

Правовые аспекты в Российской Федерации

В Российской Федерации использование cookie регулируется Федеральным законом «О персональных данных» № 152-ФЗ и Федеральным законом «Об информации, информационных технологиях и о защите информации» № 149-ФЗ. Согласно требованиям Роскомнадзора, веб-сайты обязаны:

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

Нарушение этих требований может повлечь административную ответственность (штрафы до 500 000 рублей для юридических лиц по ст. 13.11 КоАП РФ). В 2023 году Роскомнадзор усилил контроль за соблюдением правил обработки cookie, особенно в отношении иностранных платформ (включая Google LLC — организация признана нежелательной на территории РФ, Meta Platforms Inc. — организация признана экстремистской и запрещена в РФ).

Примеры использования cookie lifetime

Тип cookieТипичный lifetimeПример использования
СессионныйДо закрытия браузераИдентификатор сессии в онлайн-банке
Постоянный (короткий)1 часТокен для восстановления пароля
Постоянный (средний)30 днейНастройки языка интерфейса
Постоянный (долгий)1 годCookie «Запомнить меня» для аутентификации
Постоянный (очень долгий)2 годаАналитические cookie Google Analytics

Критика и ограничения

Несмотря на широкое распространение, механизм cookie lifetime имеет ряд недостатков:

  • Зависимость от пользователя: пользователи могут вручную удалять cookie раньше срока, что нарушает работу веб-приложений.
  • Несовместимость с мобильными приложениями: cookie не используются в нативных мобильных приложениях (за исключением WebView), что ограничивает их применение.
  • Уязвимость к атакам: cookie с длительным lifetime могут быть украдены через уязвимости браузера или перехват трафика (если не используется HTTPS).
  • Проблемы синхронизации между устройствами: cookie хранятся локально на одном устройстве и не синхронизируются между разными браузерами или устройствами пользователя.

Альтернативными подходами к управлению состоянием являются:

  • Web Storage API (localStorage и sessionStorage) — хранение данных на стороне клиента без автоматической передачи на сервер.
  • IndexedDB — база данных на стороне клиента для хранения больших объёмов данных.
  • JWT (JSON Web Tokens) — токены аутентификации, хранящиеся в localStorage или в cookie, но с возможностью задания собственного времени жизни на стороне сервера.

Источники

  • RFC 6265 — HTTP State Management Mechanism (2011)
  • Netscape Cookie Specification (1994)
  • Федеральный закон «О персональных данных» № 152-ФЗ (2006)
  • Рекомендации Роскомнадзора по обработке cookie (2021)
  • Документация браузеров Google Chrome, Mozilla Firefox, Safari, Microsoft Edge по управлению cookie
  • Статья «HTTP Cookies» на сайте MDN Web Docs

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →