SameSite Cookies: как браузер перестал слать куки куда попало — 28 мая 2026 г. в 07:00:09.775
SameSite Cookies: как браузер перестал слать куки куда попало 👋 Приветствую в мире цифровой безопасности! Расскажу про атрибут SameSite - один из самых недооценённых инструментов защиты от CSRF. ⏺Классическая атака CSRF работает так: жертва залогинена на bank.com, заходит на evil.com, там скрытая форма делает POST-запрос на bank.com/transfer. Браузер автоматически прикладывает куки сессии и банк думает что это легитимный запрос от пользователя. ⏺ SameSite говорит браузеру когда куку можно отправлять в кросс-сайтовых запросах: Set-Cookie: session=abc123; SameSite=Strict; Secure; HttpOnly Set-Cookie: session=abc123; SameSite=Lax; Secure; HttpOnly Set-Cookie: session=abc123; SameSite=None; Secure ⏺ Три режима с принципиально разным поведением: ➡️Strict - кука не уходит вообще никуда кроме запросов с того же домена. ➡️Lax - кука уходит при навигации (пользователь кликнул ссылку), но не при фоновых запросах с других сайтов. ➡️None - старое поведение, кука идёт везде, но только по HTTPS. ⏺Strict ломает сценарии, когда пользователь переходит на сайт по внешней ссылке и ожидает остаться залогиненным. Lax закрывает большинство CSRF-атак и при этом не ломает нормальный UX. Для большинства приложений Lax - правильный выбор по умолчанию. ⏺С 2020 года Chrome выставляет Lax по умолчанию для кук без явного SameSite. Это уже закрыло часть атак на старых сайтах которые не думали об этом. Но рассчитывать только на дефолты не стоит - лучше выставлять атрибут явно и понимать что именно ты разрешаешь. 🤖Бесплатный ChatGPT

