spring security-почему бы не использовать параметр' spring-security-redirect ' в формах входа для перенаправления на определенную страницу
По умолчанию, когда пользователь отправляет форму входа и проходит аутентификацию, он перенаправляется на последний URL-адрес, к которому он хотел получить доступ, прежде чем выйти из системы (извлеченный из кэша запросов ) или на корневой URL-адрес. Кроме того, если параметр 'spring-security-redirect
' найден в запросе на отправку формы, мы перенаправляемся на значение этого параметра.
Я хотел бы использовать эту функцию, но в этой нити, Люк Тейлор упомянул, что это будет риск для безопасности, и мы должны используйте дополнительное поле формы для этой цели, а затем настройте наш LoginSuccessHandler для извлечения и использования этого поля формы по своему усмотрению.
Я не в состоянии понять риск безопасности, о котором он упомянул, и причину, по которой мы не должны использовать функцию, которую Spring Security уже предоставил, вместо того, чтобы использовать нашу собственную пользовательскую логику. Мои причины, по которым я хочу использовать функциональность, такие же, как и у OP в вышеупомянутом потоке.1 ответ:
Атака позади-это своего рода подделка межсайтового запроса (CSRF-атака)
Если злоумышленник (а) отправит измененную ссылку какому-либо лицу (Б) и Б коротко взглянет на эту ссылку и увидит, что это ваше приложение, он может щелкнуть по этой ссылке.
Человек Б вводит свои учетные данные и получает доступ.
Но теперь перенаправление выполняется с учетными данными этого человека B!
Итак, представьте, что у вас есть приложение, в котором каждый пользователь может потратить немного денег на вызов http://yourApp/spendSomeMoney=100 -- (Первая ошибка в этом приложении будет заключаться в том, что это GET, а не POST )
Теперь представьте себе (а) отправить (б) эту ссылку: http://yourApp/login.jsp?spring-security-redirect=http: / / yourApp/spendSomeMoney=100
Вы видите проблему.
В общем, я бы настоятельно рекомендовал использовать какой-нибудь CSRF защитный фильтр, независимо от того, используете ли вы этот редирект или нет.