PassFront
  1. PassFront
  2. База знаний
  3. DOM и браузер

Что такое CSRF токен?

DOM и браузер

CSRF-токен — это уникальный непредсказуемый секрет, который сервер выдаёт клиенту и требует прикладывать к изменяющим запросам, чтобы подтвердить их подлинность и защититься от CSRF-атак.

Зачем нужен

При CSRF злоумышленник заставляет браузер жертвы отправить запрос с её cookie. Cookie прикрепляется автоматически, но CSRF-токен злоумышленник не знает — без него сервер отклонит запрос.

Как работает (Synchronizer Token Pattern)

  1. Сервер генерирует уникальный токен для сессии/формы и передаёт клиенту (в HTML-форме или через отдельный запрос).
  2. Клиент прикладывает токен к изменяющему запросу — в скрытом поле формы или заголовке:
POST /transfer
X-CSRF-Token: a1b2c3d4...
  1. Сервер сравнивает присланный токен с ожидаемым. Не совпал — запрос отклонён.

Почему это защищает

Чужой сайт не может прочитать CSRF-токен (мешает Same-Origin Policy) и подставить его в поддельный запрос. Cookie отправится автоматически, а токен — нет.

Дополнительно

  • Часто комбинируют с SameSite cookie (основная современная защита).
  • Токен должен быть непредсказуемым, привязанным к сессии, с ограниченным сроком.
  • Есть паттерн Double Submit Cookie (токен и в cookie, и в заголовке).

Коротко для собеседования

CSRF-токен — уникальный непредсказуемый секрет от сервера, который клиент прикладывает к изменяющим запросам (в поле формы или заголовке); сервер его проверяет. Защищает, потому что чужой сайт не может прочитать токен (SOP), хотя cookie шлётся автоматически. Комбинируют с SameSite cookie.

Другие вопросы раздела