Вебсправочник
Основы веб-разработки

Атрибуты cookie: Secure, HttpOnly, SameSite и область действия

Атрибуты cookie определяют, когда браузер отправляет значение серверу и доступно ли оно клиентскому JavaScript. Они дополняют защиту сессии, но не заменяют проверку прав на сервере.

Назначение

Атрибуты cookie определяют, когда браузер отправляет значение серверу и доступно ли оно клиентскому JavaScript. Они дополняют защиту сессии, но не заменяют проверку прав на сервере.

Как это работает

Secure ограничивает отправку защищённым соединением с браузерными исключениями для localhost. HttpOnly закрывает чтение через document.cookie. SameSite ограничивает определённые межсайтовые отправки; None требует Secure. Path задаёт область отправки по пути.

Пример

Set-Cookie: session=EXAMPLE_ONLY; Path=/; Secure; HttpOnly; SameSite=Lax
# Демонстрационный заголовок. EXAMPLE_ONLY не является настоящей сессией.

Что должно получиться

При установке на подходящем HTTPS-адресе cookie может храниться в браузере и автоматически сопровождать подходящие запросы. Отсутствие значения в document.cookie ожидаемо при HttpOnly и не доказывает отсутствие cookie.

Граница применения и частая ошибка

Path не является границей безопасности. SameSite нельзя считать универсальной защитой от CSRF, а HttpOnly не устраняет все последствия XSS. Не копируйте один пример атрибутов в любой сервис без проверки входа, платежей и межсайтовых переходов.

Самостоятельная проверка

На собственном стенде откройте Storage или Application и проверьте фактически установленные атрибуты. Посмотрите причину блокировки, если браузер отклонил cookie. В отчёте указывайте имена и атрибуты, но скрывайте реальные значения сессий.

Самостоятельный учебный материал. Техническая документация: первоисточник по теме ↗. Если результат отличается, проверьте код и версию браузера.