← Назад к вопросам

Для чего используется атрибут 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-атак в современной сети.

Для чего используется атрибут SameSite в cookie? | PrepBro