Атрибуты 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. В отчёте указывайте имена и атрибуты, но скрывайте реальные значения сессий.