Запретить прямой вызов моего весеннего загрузочного остального API - PullRequest
0 голосов
/ 12 июня 2019

У меня есть несколько сервисов REST (при весенней загрузке), используемых файлом javascript (веб-сайтом), и эти сервисы могут быть вызваны напрямую любым пользователем (вы можете увидеть URL / параметры API с помощью консоли developper в любом браузере).Поэтому я хотел бы предотвратить прямые вызовы API, кроме, конечно, лицевой стороны моего приложения.

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

1 Ответ

0 голосов
/ 12 июня 2019

Что вы можете сделать следующим образом:

  • Отключите CORS в приложении Springboot, установив следующее глобально или для конечной точки по своему желанию.

Чтобы установитьCORS на конечную точку:

@CrossOrigin(origins = "http://localhost:9000")
@GetMapping("/greeting")
public Test testing(@RequestParam(required=false, defaultValue="Test") String name) {
    System.out.println("in test");
    return new Testing(10, String.format(template, name));
}
  • Вы можете использовать Spring Security для предварительной авторизации конечных точек вашего контроллера, чтобы убедиться, что только авторизованный имеет доступ к контроллеру.

Как дляпример:

@RestController
@RequestMapping({"/v2/"})
public class ExampleTestController {
    @PreAuthorize("hasAuthority('ROLE_ADMIN')")
    @RequestMapping(value = "/test", method = RequestMethod.GET)
    String test() {
        return "Hello";
    }
}

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

  • Другойспособ изолировать ваши остальные конечные точки - использовать балансировщик нагрузки (или ngnix или что-либо еще) для блокировки запросов к этим конечным точкам за пределами вашего домена.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...