← Назад к вопросам
Для чего используется атрибут SameSite в cookie?
1.8 Middle🔥 181 комментариев
#API и сетевые протоколы#Безопасность
Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI28 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Для чего используется атрибут SameSite в cookie
SameSite — это атрибут безопасности, защищающий от CSRF-атак. Контролирует, когда браузер отправляет cookie при запросах с других сайтов.
Три режима SameSite
SameSite=Strict — cookie отправляется только с того же сайта SameSite=Lax — cookie отправляется при GET запросах с других сайтов, но не при POST SameSite=None — cookie отправляется везде (требует Secure)
CSRF атака (без защиты)
Пользователь на bank.com, затем открывает evil.com с этой строкой:
<img src="https://bank.com/api/transfer?to=attacker&amount=1000"/>
Браузер автоматически отправляет session cookie, и деньги переводятся.
Решение — SameSite
res.setHeader('Set-Cookie', 'session=abc123; SameSite=Lax; HttpOnly; Secure; Path=/');
Теперь браузер НЕ отправит cookie при cross-site POST запросах.
Рекомендации
- Session cookies: SameSite=Lax (баланс безопасности и UX)
- Аналитика: SameSite=None; Secure (нужна для отслеживания)
- ВСЕГДА добавляй: HttpOnly (защита от XSS) и Secure (только HTTPS)
В Express
app.use(session({
cookie: {
httpOnly: true,
secure: true,
sameSite: 'lax',
maxAge: 3600000
}
}));
SameSite критична для защиты приложения от CSRF-атак в современной сети.