Один сайт и один источник — разные границы. Совпадение сайта не открывает сценариям чтение ответа другого источника.
Атрибут cookie SameSite
Определение
Атрибут cookie SameSite — пометка, которая говорит браузеру, прикладывать ли cookie к запросам, пришедшим с другого сайта. Значение Strict, Lax или None задаёт строгость правила, причём None требует ещё и атрибут Secure.
Также ищут: Cookie SameSite attribute · SameSite cookie · SameSite=Lax · SameSite=Strict
Зачем это знать
Атрибут уменьшает автоматическую передачу учётных данных и часть риска CSRF, но граница сайта шире источника и не покрывает все сценарии.
Карта понятия
Что подтверждено
SameSite принимает значения Strict, Lax или None и по-разному обрабатывает межсайтовые запросы; None требует атрибут Secure.
Граница применимости: Модель SameSite в принятой редакции draft-ietf-httpbis-rfc6265bis-22; это рабочий документ, а не RFC 6265.
Правило одного сайта не равно политике одного источника: источник включает схему, имя узла и порт, а сайт допускает более широкую связанность.
Граница применимости: Сопоставление модели сайта из принятой редакции 6265bis-22 и модели источника RFC 6454.
Два HTTPS-узла с общим регистрируемым доменом могут относиться к одному сайту, оставаясь разными источниками из-за разных имён узла. SameSite не превращает соседний поддомен в доверенный интерфейс приложения.
Граница применимости: Схема сайта из 6265bis-22 и схема источника RFC 6454; предполагается явно установленная граница регистрируемого домена.
SameSite=None требует Secure в принятой модели, но выполнение этого условия не гарантирует отправку cookie: действуют её область, режим учётных данных запроса и другие ограничения браузера.
Граница применимости: Совместное применение условий cookie и Fetch; не обещает доступность сторонних cookie во всех браузерах.
Не путать
SameSite ограничивает часть автоматических отправок, а серверная проверка токена связывает действие с предусмотренным контекстом. Ни одна из мер не удостоверяет намерение человека при уже внедрённом коде.
Что проверить
- Задайте SameSite явно и проверьте целевой браузер.
- Для None задайте Secure.
- Проверьте вход через внешний сервис и возврат верхнего уровня.
- Не выполняйте изменения состояния через безопасный метод GET.
- Разделите доверие к соседнему поддомену и политику источника.
- Проверьте остальные условия отправки cookie.
- Сохраните серверные проверки CSRF и прав на операцию.
Первоисточники
- The Web Origin Concept
Определяет origin как scheme, host и port и описывает origin-based browser isolation model.
- Cross-Site Request Forgery Prevention Cheat Sheet
Разводит CSRF tokens, SameSite и origin checks и задаёт свойства synchronizer и signed double-submit tokens.
Утверждения: 04
- Cookies: HTTP State Management Mechanism
Базовый стандарт Cookie и Set-Cookie: синтаксис, атрибуты Secure, HttpOnly, Path, Domain. SameSite в нём НЕТ — он появился в 6265bis, см. ietf-6265bis-cookies.
Утверждения: 05
- Fetch Standard
Определяет CORS protocol, credentials modes, allowed origins и CORS-preflight fetch через OPTIONS.
Утверждения: 05
- Cross Site Scripting Prevention Cheat Sheet
Определяет context-specific output encoding и safe sinks; CSP и WAF рассматривает как дополнительные, а не основные XSS controls.