Хобрук: Ваш путь к мастерству в программировании

Недоумения в весеннем методе безопасности POST и GET

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


Ответы:


1

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

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

А вы утверждаете, что:

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

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

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

  • Кросс
  • Сайт
  • Rзапрос
  • Фальсификация

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 включена по умолчанию.

13.02.2019

2

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

14.02.2019
Новые материалы

Я собираюсь научить вас Python шаг за шагом
Привет, уважаемый энтузиаст Python! 👋 Готовы погрузиться в мир Python? Сегодня я приготовил для вас кое-что интересное, что сделает ваше путешествие более приятным, чем шарик мороженого в..

Альтернатива шаблону исходящих сообщений для архитектуры микросервисов
Познакомьтесь с двухэтапным сообщением В этой статье предлагается альтернативный шаблон для папки Исходящие : двухэтапное сообщение. Он основан не на очереди сообщений, а на..

React on Rails
Основное приложение Reverb - это всеми любимый монолит Rails. Он отлично обслуживает наш API и уровень просмотра трафика. По мере роста мы добавляли больше интерактивных элементов..

Что такое гибкие методологии разработки программного обеспечения
Что представляют собой гибкие методологии разработки программного обеспечения в 2023 году Agile-методологии разработки программного обеспечения заключаются в следующем: И. Введение A...

Ториго  — революция в игре Го
Наш следующий вызов против ИИ и для ИИ. Сможет ли он победить людей в обновленной игре Го? Обратите внимание, что в следующей статье AI означает искусственный интеллект, а Goban  —..

Простое развертывание моделей с помощью Mlflow — Упаковка классификатора обзоров продуктов NLP от HuggingFace
Как сохранить свои модели машинного обучения в формате с открытым исходным кодом с помощью MLFlow, чтобы позже получить возможность легкого развертывания. Сегодня модели упаковки имеют несколько..

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