Первоначальное раскрытие:
Я новичок в nginx и конфигурации обратного прокси-сервера в целом.
Фон
У меня есть производная от Swagger, FOSS, https - доступный API REST [написанный другой стороной], работающий на определенном порту экземпляра EC2 CentOS 7 за обратным прокси-сервером nginx 1.16.1 (по пути https://foo_domain/bar_api/
); для моих целей этот API должен быть доступен из широкого спектра сервисов, не все из которых публикуют sh свои диапазоны IP, т. е. API должен быть открыт для трафика c с любого IP.
Доступ к конечным точкам данных API (например, https://foo_domain/bar_api/resource_id
) контролируется функцией входа в систему, расположенной в https://foo_domain/bar_api/foobar/login
, поддерживаемой аутентификацией токена, которая работает нормально.
Проблема
Однако проблема в том, что анонимный пользователь может получить
https://foo_domain/bar_api
без входа в систему, что приводит к потенциально уязвимым данные о возвращаемой конфигурации сервера API, такие как истинный порт API, версия сервера, некоторые из доступных конечных точек и параметров и т. д. c. Это неприемлемо для этой цели с точки зрения безопасности.
Вопрос
Как предотвратить анонимные запросы GET к конечной точке / bar_api /, в то же время разрешив беспрепятственное выполнение запросов входа в систему и аутентифицированных данных к конечным точкам за пределами / bar_api /? Или, в противном случае, как я могу предотвратить возвращение данных по таким запросам?