Предотвратите подделку запроса перекрестного сайта в приложении Spring WebFlow

Я ищу (надо надеяться, простой) способ добавить, что защита CSRF к приложению основывается на Spring WebFlow 2.

Предпочтен подход, который мигрирует хорошо на Spring WebFlow 3 (при выпуске).

6
задан skaffman 11 May 2010 в 21:21
поделиться

1 ответ

Самый простой способ предотвратить CSRF - это проверить referer request.getHeader ("referer"); , чтобы убедиться, что запрос происходит из того же домена. Этот метод описан в шпаргалке по предотвращению CSRF .

Обычно эту систему защиты CSRF можно увидеть на встроенном сетевом оборудовании с ограниченными требованиями к памяти, Motorola использует этот метод на большей части своего оборудования. Это не самая надежная защита от CSRF, защита на основе токенов лучше, но обе системы все же можно обойти с помощью xss. Самая большая проблема с защитой CSRF на основе токенов заключается в том, что на то, чтобы вернуться и исправить каждый запрос, требуется много времени, и вы, вероятно, пропустите несколько запросов.

Безопасный способ реализовать это - проверять реферер на всех входящих запросах POST и использовать POST для важных функций, таких как изменение паролей, добавление учетных записей пользователей, выполнение кода, внесение изменений в конфигурацию.GET следует использовать только для навигации или поиска, в основном GET безопасен для всего, что не вызывает изменения состояния.

Обязательно протестируйте свой сайт с помощью xss-сканера .

4
ответ дан 17 December 2019 в 02:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: