Mastodon Mastodon Mastodon Mastodon

CSRF

Обновлено: · CyberSecureFox Editorial Team

CSRF (межсайтовая подделка запроса) — атака, которая заставляет браузер авторизованного пользователя незаметно отправить на сайт нежелательный запрос, выполняемый с правами этого пользователя.

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

Браузер автоматически прикрепляет cookie к запросам на сайт, независимо от того, какая страница их инициировала. Допустим, вы вошли в интернет-банк или панель управления роутером и открыли вредоносную страницу. На ней может быть скрытая форма или картинка, которая отправляет на другой сайт запрос «сменить e-mail», «перевести деньги» или «изменить DNS-сервер». Браузер добавит cookie вашей сессии, и если сайт не проверяет, откуда пришёл запрос, он выполнит действие так, будто вы сами нажали кнопку.

Слабость описана как CWE-352. В отличие от межсайтового скриптинга, атакующий не может прочитать ответ — его цель в том, чтобы вызвать изменяющее действие. Эксплойт-киты использовали CSRF против домашних роутеров, незаметно меняя их настройки DNS и перенаправляя пользователей на фишинговые сайты.

Почему это важно

С помощью CSRF можно сменить e-mail и пароль аккаунта (и захватить его), создать администратора в CMS, изменить настройки устройства или совершить покупку. В сочетании с другими ошибками CSRF становится шагом к перехвату сессии или выполнению кода. Частые жертвы — админ-панели роутеров, NAS и плагинов WordPress.

Как предотвратить

  • Использовать анти-CSRF-токены — случайное значение, привязанное к сессии, которое должно сопровождать каждый изменяющий запрос.
  • Выставлять cookie сессии с атрибутом SameSite (Lax или Strict); основные браузеры уже используют Lax по умолчанию.
  • Проверять заголовки Origin или Referer для чувствительных запросов.
  • Требовать повторного ввода пароля для критичных действий и не менять состояние через GET-запросы.

Как SQL-инъекция и SSRF, CSRF — классическая ошибка веб-приложений, от которой во многом защищают настройки фреймворков по умолчанию, если разработчики их не отключают.

Синонимы:
межсайтовая подделка запроса, межсайтовая подделка запросов, cross-site request forgery, XSRF