Cross site forgery request (CSFR) detected

Сообщение «Cross-site forgery request (CSRF) detected» означает, что система безопасности обнаружила попытку несанкционированного межсайтового запроса (CSRF), и заблокировала его. Такие попытки обычно происходят, когда злоумышленник пытается обмануть пользователя, заставив его совершить нежелательные действия на доверенном сайте путем подделывания запроса с другого домена.

Что такое CSRF?


CSRF (cross-site request forgery) — это уязвимость веб-приложений, позволяющая злоумышленнику заставить жертву отправить вредоносный запрос к сайту, которому жертва доверяет. Например, если вы вошли на банковский сайт и открыли другую вкладку с поддельным сайтом, мошенник может попытаться заставить вас выполнить транзакцию или удалить аккаунт на доверенном сайте, используя сессионные куки жертвы.

Типичные сценарии атаки CSRF


  1. Удаление аккаунта или сброс пароля: Жертву заставляют подтвердить сброс пароля или удаление аккаунта через скрытые формы или гиперссылки.
  2. Перевод денег: Пользователь открывает легитимный сайт банка, после чего переходит на поддельный сайт, который незаметно инициирует платежную транзакцию на счету жертвы.
  3. Изменение конфиденциальных данных: Незаметные манипуляции с формами или кнопками могут привести к изменению персональных данных или контактной информации.

Как защитить своё приложение от CSRF?


Существует ряд эффективных мер против атак CSRF:
  1. CSRF-токены: Генерируйте уникальные одноразовые токены для каждой сессии пользователя и проверяйте их на сервере при каждом запросе. Токены защищают от попыток злоумышленников отправить фальшивые запросы.
  2. Проверка Referer и Origin заголовков: Веб-приложение может проверять, откуда пришел запрос, сравнивая значения заголовков Referer и Origin. Хотя это не абсолютная гарантия, это хороший дополнительный барьер.
  3. Использование SameSite cookie policy: Современные браузеры поддерживают атрибут SameSite для cookies, который предотвращает отправку куков при междоменных запросах. Это хорошая практика для дополнительной защиты.
  4. Limitation of cross-domain access via CORS: Политика Cross-Origin Resource Sharing (CORS) позволяет контролировать, какие внешние домены могут совершать запросы к вашему ресурсу.
  5. Исключение GET-запросов от чувствительных операций: Все операции, изменяющие состояние (DELETE, PUT, PATCH, POST), должны требовать подтверждения посредством POST-запросов с CSRF-токеном.

Дальнейшие действия


  • Проверьте логи, чтобы узнать, какое именно действие вызвало предупреждение о CSRF. Обычно подобные события регистрируются с IP-адресом и информацией о запросе.
  • Повысьте уровень безопасности, внедряя CSRF-токены для всех критических операций.
  • Настройте правильную политику безопасности заголовков (CSP, HSTS, Strict Transport Security) для дополнительного уровня защиты.

Помните, что атаки CSRF крайне распространены, и внедрение защитных мер повысит устойчивость вашего приложения к подобным угрозам.
Автор:  17 часов назад