
При CSRF браузер авторизованного пользователя может отправить нежелательный запрос, используя автоматически приложенные учётные данные. Приложение принимает его как действие владельца аккаунта, если не проверяет происхождение и предусмотренное подтверждение операции.
Какие действия особенно важны
Проверьте изменение email и пароля, добавление пользователей, управление реквизитами, настройку интеграций и удаление данных. Обычный просмотр страницы и операция, меняющая состояние, должны различаться. Изменение настроек через простую ссылку GET — повод пересмотреть реализацию.
Какие меры применяют разработчики
- Встроенную CSRF-защиту используемого фреймворка.
- Серверную проверку предусмотренных токенов или других защитных механизмов.
- Подходящие атрибуты cookie и проверку источника запроса.
- Дополнительное подтверждение особо чувствительных действий.
- Отдельную проверку всех альтернативных endpoint и API.
Почему одного атрибута cookie мало
SameSite полезен, но его действие зависит от сценария и понятия сайта в браузере. Выбор настройки должен учитывать интеграции и модель угроз. Он не заменяет автоматически все остальные проверки. XSS внутри доверенного приложения также может обходить часть защитных предположений, поэтому уязвимости рассматривают совместно.
Что проверить при приёмке
На тестовом аккаунте запрос без необходимого подтверждения должен отклоняться, а обычная форма — работать. Проверьте несколько вкладок, истёкшую сессию и возврат после авторизации. Ошибка защиты не должна приводить к необъяснимой потере заполненных данных.
Если приложение использует токен в заголовке, а не автоматически отправляемую cookie, сценарий угроз отличается. Но это не означает, что любое API свободно от CSRF: нужно учитывать фактические способы авторизации, включая резервные.
Какой результат запросить
Попросите перечень защищённых операций и тестов, а не только подтверждение установки библиотеки. Особенно важны старые обработчики и собственные модули: новая форма может быть защищена, а прежний адрес продолжать принимать изменение без проверки.
Дополнительно: OWASP: предотвращение CSRF.
Читайте также
- XSS-уязвимости: как защитить посетителей сайта от вредоносных скриптов
- Как защитить API сайта от несанкционированного доступа
- Как защитить личный кабинет клиента от подбора паролей
Если задача связана с вашим сайтом, можно обсудить проверку и доработку. Объём работ определяется после знакомства с проектом.


