Я ищу (надо надеяться, простой) способ добавить, что защита CSRF к приложению основывается на Spring WebFlow 2.
Предпочтен подход, который мигрирует хорошо на Spring WebFlow 3 (при выпуске).
Самый простой способ предотвратить CSRF - это проверить referer request.getHeader ("referer");
, чтобы убедиться, что запрос происходит из того же домена. Этот метод описан в шпаргалке по предотвращению CSRF .
Обычно эту систему защиты CSRF можно увидеть на встроенном сетевом оборудовании с ограниченными требованиями к памяти, Motorola использует этот метод на большей части своего оборудования. Это не самая надежная защита от CSRF, защита на основе токенов лучше, но обе системы все же можно обойти с помощью xss. Самая большая проблема с защитой CSRF на основе токенов заключается в том, что на то, чтобы вернуться и исправить каждый запрос, требуется много времени, и вы, вероятно, пропустите несколько запросов.
Безопасный способ реализовать это - проверять реферер на всех входящих запросах POST и использовать POST для важных функций, таких как изменение паролей, добавление учетных записей пользователей, выполнение кода, внесение изменений в конфигурацию.GET следует использовать только для навигации или поиска, в основном GET безопасен для всего, что не вызывает изменения состояния.
Обязательно протестируйте свой сайт с помощью xss-сканера .