Cookie: что это и как управлять

Cookie (куки) — небольшие файлы данных, сохраняемые браузером. Используются для авторизации, аналитики и персонализации. GDPR требует согласия на аналитические куки.

cookieбезопасностьприватностьgdprбраузер

Что такое Cookie

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

Cookie позволяют серверу «запоминать» информацию между запросами: сессию авторизации, настройки пользователя, данные корзины.

Как работают Cookie

1. Пользователь авторизуется на сайте
2. Сервер отправляет:
   Set-Cookie: session_id=abc123; HttpOnly; Secure; SameSite=Strict

3. Браузер сохраняет cookie

4. При следующем запросе:
   Cookie: session_id=abc123

5. Сервер идентифицирует пользователя

Типы Cookie

По назначению

ТипНазначениеСогласие GDPR
НеобходимыеАвторизация, корзина, безопасностьНе требуется
АналитическиеGoogle Analytics, Яндекс.МетрикаТребуется
РекламныеРетаргетинг, AdSenseТребуется
ФункциональныеНастройки языка, темыЧасто не требуется

По сроку жизни

  • Session cookies — удаляются при закрытии браузера
  • Persistent cookies — хранятся до истечения Max-Age/Expires

Атрибуты безопасности Cookie

Set-Cookie: session=abc123;
  HttpOnly;            /* недоступен через JavaScript */
  Secure;              /* только через HTTPS */
  SameSite=Strict;     /* не отправляется с других сайтов */
  Max-Age=3600;        /* срок жизни 1 час */
  Path=/;              /* доступен для всех путей */
  Domain=example.com   /* доступен для домена и поддоменов */

SameSite атрибут

ЗначениеПоведение
StrictCookie не отправляется с других сайтов
LaxОтправляется при навигации, не в fetch/XHR
NoneВсегда отправляется (требует Secure)

GDPR и Закон о Cookie

Согласно GDPR (Европа) и ФЗ-152 (Россия), для аналитических и рекламных cookie требуется явное согласие пользователя:

<!-- Consent Banner (упрощённый пример) -->
<div id="cookie-banner">
  Мы используем cookie для аналитики.
  <button onclick="acceptCookies()">Принять</button>
  <button onclick="rejectAnalytics()">Только необходимые</button>
</div>
function acceptCookies() {
  localStorage.setItem('cookie-consent', 'all');
  initGoogleAnalytics(); // загружаем аналитику только после согласия
  document.getElementById('cookie-banner').remove();
}

Cookie и безопасность

Основные угрозы:

  • XSS (Cross-Site Scripting) — кража cookie через вредоносный JS → защита: HttpOnly
  • CSRF (Cross-Site Request Forgery) — подделка запросов → защита: SameSite=Strict + CSRF-токены
  • Перехват трафика — кража cookie по HTTP → защита: Secure + HTTPS

Third-party cookies и их упразднение

Google Chrome поэтапно отказывается от третьесторонних cookie (сторонних трекеров). Safari и Firefox уже блокируют их. Это меняет подходы к:

  • Аналитике (переход на first-party данные)
  • Ретаргетингу (новые механизмы)
  • Аутентификации (OIDC, OAuth)

Проверка Cookie на reChecker

Используйте Анализатор Cookie для анализа cookie вашего сайта. Инструмент покажет:

  • Все установленные cookie
  • Их атрибуты (HttpOnly, Secure, SameSite)
  • Срок жизни каждого cookie
  • Потенциальные проблемы безопасности

FAQ

Cookie влияют на производительность сайта? Незначительно. Cookie добавляются к каждому HTTP-запросу к домену. Хранение аналитических данных в cookie увеличивает размер заголовков. Для большой аналитики лучше localStorage или IndexedDB.

Cookie и localStorage — в чём разница? Cookie отправляется серверу при каждом запросе, доступен с сервера. localStorage — только в браузере, не передаётся серверу. Для авторизации — cookie (сервер проверяет). Для клиентских настроек — localStorage.

Нужен ли cookie-баннер если сайт использует только Google Analytics? Да, по GDPR. Google Analytics использует аналитические cookie требующие согласия. Исключение: если используется Google Analytics 4 в режиме конфиденциальности (без cookie) с согласованным режимом.

Попробуйте инструмент

Проверьте cookie на вашем сайте с помощью бесплатного инструмента.

Анализатор Cookie

Статьи по теме

Материалы блога reChecker, где этот термин встречается в практическом контексте.

Поддержка reChecker

Нашли баг, сбой или ошибку в работе reChecker? Есть предложение по улучшению? Напишите нам, чтобы мы проверили и исправили проблему в сервисе.

Эта форма для обратной связи по работе reChecker. Если нужна разработка или поддержка вашего сайта, отправьте отдельную заявку:

Для ответа укажите минимум один контакт: email или телефон.