Domain и Path задают область отправки cookie, SameSite добавляет условие межсайтового контекста. Это разные ограничения одной отправки.
Cookie сессии
Определение
Cookie сессии — cookie, с помощью которой браузер автоматически передаёт приложению идентификатор сессии.
Также ищут: Session cookie · session ID cookie · authentication cookie
Зачем это знать
Автоматическая отправка удобна, но требует защиты от кражи, CSRF, слишком широкой области действия и устаревшей серверной сессии.
Карта понятия
Что подтверждено
Cookie часто служит переносчиком идентификатора сессии; сам идентификатор обычно лишь ссылается на состояние, хранимое на сервере.
Граница применимости: Передача идентификатора сессии через cookie.
Secure, HttpOnly и SameSite ограничивают разные риски и не заменяют друг друга: передачу по сети, чтение сценарием и межсайтовую отправку.
Граница применимости: Уровни защиты cookie сессии.
Без атрибута Domain cookie привязана к узлу, который её установил. Допустимый Domain расширяет область отправки на соответствующий домен и его подходящие поддомены; поэтому область выбирают по потребности приложения.
Граница применимости: Алгоритмы области cookie в RFC 6265; остальные условия отправки, включая путь и защищённый канал, проверяются отдельно.
Path участвует в выборе запросов, к которым браузер прикладывает cookie. RFC 6265 прямо не считает Path надёжной границей безопасности между приложениями на одном узле.
Граница применимости: Разделение подбора cookie по пути и изоляции приложений.
Срок хранения cookie управляет её копией в браузере. Серверный сеанс может оставаться действующим для уже скопированного идентификатора, пока приложение отдельно не завершит его или не применит серверный срок.
Граница применимости: Непрозрачный идентификатор с серверным состоянием; не описывает все модели самостоятельных токенов.
Не путать
Удаление копии cookie в браузере и прекращение серверного сеанса проверяют отдельно: скопированный идентификатор не исчезает при очистке браузера.
Что проверить
- Определите, где хранится состояние сеанса.
- Сузьте область cookie до необходимых узлов.
- Не используйте Path как изоляцию соседних приложений.
- Выберите Secure, HttpOnly и SameSite по их отдельным задачам.
- Согласуйте срок cookie и серверные сроки сеанса.
- На выходе проверьте и серверный отзыв, и удаление нужной cookie.
- Проверьте повторный запрос со старым идентификатором после отзыва.
Первоисточники
- Session Management Cheat Sheet
Описывает entropy, cookie transport, renewal после privilege change, timeouts, logout и server-side invalidation sessions.
- Cookies: HTTP State Management Mechanism
Базовый стандарт Cookie и Set-Cookie: синтаксис, атрибуты Secure, HttpOnly, Path, Domain. SameSite в нём НЕТ — он появился в 6265bis, см. ietf-6265bis-cookies.
- Cookies: HTTP State Management Mechanism (6265bis)
Рабочий документ HTTP WG, определяющий атрибут SameSite (Strict, Lax, None) и требование Secure для None. Это не RFC: класс основания ниже стандарта намеренно.
Утверждения: 02