Недостатки в пружинных методах безопасности POST и GET - PullRequest
0 голосов
/ 13 февраля 2019

Я сильно сомневаюсь в использовании безопасности Spring, в частности, я хочу знать, как защищать функции, подключенные к контроллеру (GET и POST).Позвольте мне объяснить лучше: для защиты я не намерен выполнять это действие для авторизованных пользователей с определенными ролями, я намерен защищать это действие даже для авторизованных пользователей.Конкретный пример: пользователь, знающий идентификатор объекта, вызывает POST-форму непосредственно из URL, не проходя через любую кнопку / ссылку

Ответы [ 2 ]

0 голосов
/ 14 февраля 2019

это уже сделано по умолчанию.Недоумения решены

0 голосов
/ 13 февраля 2019

Я полагаю, что вы спрашиваете:

Как запретить запросы POST из других источников?

И вы заявляете, что:

Я хочу убедиться, что запрос POST приходит только из моей формы!

Spring Security делает это автоматически для HTML-форм.Мы называем эту функцию

Предотвращение CSRF

  • C ross
  • S ite
  • R equest
  • F orgery

Spring Security делает это автоматически для вас.Любой запрос POST проверяется на наличие CSRF-токена .Значение, которое Spring устанавливает, когда браузер загружает форму.Без этого токена Spring Security возвращает ошибку 403 (ссылка)

Например:

        http
            //application security
            .mvcMatcher("/**")
            .authorizeRequests()
                .anyRequest().hasAnyRole("ADMIN","USER")
                .and()
            .httpBasic()
                .and()
            .formLogin()
        ;

с включенной защитой CSRF.Чтобы отключить его, мы добавляем .csrf().disable()

        http
            //application security
            .mvcMatcher("/**")
            .authorizeRequests()
                .anyRequest().hasAnyRole("ADMIN","USER")
                .and()
            .httpBasic()
                .and()
            .formLogin()
                .and()
            .csrf().disable()
        ;

Вы можете видеть, как этот пользователь (ссылка) не смог отправить POST без токена CSRF.Решением этого пользователя было отключить защиту от CSRF, потому что она включена по умолчанию.

Ответ на ваш вопрос: Вам не нужно ничего делать.Защита от CSRF включена по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...