Cross-Site Request Forgery (CSRF)

Простыми словами

Злоумышленник не обязан знать cookie: он заставляет браузер автоматически приложить её к запросу, если приложение не проверяет, что действие действительно инициировано пользователем.

Как применяется

Защита включает CSRF-токены, SameSite cookie, проверку Origin, повторную аутентификацию для критичных действий и отказ от изменяющих состояние GET-запросов.

Пример применения

Пользователь открывает чужую страницу, которая отправляет форму изменения почты в сервис, где он уже вошёл. Сервер отклоняет запрос без связанного с сессией CSRF-токена.

Не путать с

  • XSSXSS выполняет внедрённый код в контексте доверенного сайта

Как это работает

  1. Активная сессияПользователь уже аутентифицирован в целевом приложении.
  2. ПриманкаОн открывает страницу или сообщение, инициирующее запрос к цели.
  3. Автоматические полномочияБраузер прикладывает cookie или другой автоматически отправляемый идентификатор.
  4. Нежелательное действиеСервер выполняет запрос, если не проверяет намерение и происхождение.

Продолжить изучение

Частые вопросы

JWT исключает CSRF?

Зависит от хранения и передачи: если токен автоматически отправляется cookie, риск сохраняется.

SameSite достаточно?

Это сильный слой, но совместимость и исключения требуют дополнительных токенов и проверки критичных операций.

Почему GET не должен менять данные?

GET легко инициировать внешней ссылкой или ресурсом и он не предназначен для изменения состояния.

Cross-Site Request Forgery (CSRF) — атака, при которой браузер аутентифицированного пользователя отправляет нежелательный запрос доверенному веб-приложению.