В чем причина отключения csrf в веб-приложении с весенней загрузкой?

Есть много руководств, где показано, как отключить csrf,

csrf().disable()

(и другие возможности, такие как .properties, .yml и т. д.) а нигде не объяснили зачем они это делают?

Итак, мои вопросы:

Какова реальная причина отключить его?
Это улучшает производительность?

кто-то может использовать другой механизм токена, который не является csrf, для аутентификации запросов, например jwt, поэтому токен csrf не будет использоваться

benjamin c 17.09.2018 10:23

В учебнике это может быть просто для упрощения учебника.

Raedwald 17.09.2018 10:29

@benjaminc хорошо, понятно, но почему бы просто не забыть о csrf (). disable ()? jwt и стандартный csrf как-то мешают или мешают друг другу?

arminvanbuuren 17.09.2018 10:29

@Raedwald, я думаю просто забудьте про csrf (). Disable () проще)))

arminvanbuuren 17.09.2018 10:30

@arminvanbuuren сделает запросы более подробными

Andrew Tobilko 17.09.2018 10:33
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
34
5
14 643
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Spring рекомендую использовать его при обслуживании клиенты браузера, в противном случае он может быть отключен:

Our recommendation is to use CSRF protection for any request that could be processed by a browser by normal users. If you are only creating a service that is used by non-browser clients, you will likely want to disable CSRF protection.

Я добавлю, что даже если вы обслуживаете клиентов браузера, но он используется внутри, только вы можете захотеть / удалить его.

Итак, суть моего вопроса: ** почему ** я могу захотеть это сделать? В чем причина того, что я так хочу его отключить? Почему я не могу просто забыть об этом?

arminvanbuuren 17.09.2018 10:42

Вы не хотите отключать защиту CSRF для внутренних сайтов. Это позволит злоумышленникам обойти брандмауэры, поскольку CSRF происходит в вашем браузере, который находится за любыми брандмауэрами. Рекомендую прочитать docs.spring.io/spring-security/site/docs/5.3.x/reference/htm‌ l5 /…

Rob Winch 25.03.2020 14:59
Ответ принят как подходящий

What is the real-life reason to disable it?

Документация Spring предлагает:

Our recommendation is to use CSRF protection for any request that could be processed by a browser by normal users. If you are only creating a service that is used by non-browser clients, you will likely want to disable CSRF protection.


Does it improve performance?

Это не должно влиять на производительность. Фильтр (или другой компонент) будет удален из цепочки обработки запросов, чтобы сделать функцию недоступной.

What is the reason to disable csrf in a Spring Boot application?

  1. Вы используете другой механизм токенов.
  2. Вы хотите упростить взаимодействие между клиентом и сервером.

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

Другие вопросы по теме