У меня есть интерфейс с обратным прокси-сервером nginx. Любой запрос на получение, сделанный из него, начинающийся с префикса «api», направляется в бэкэнд. Однако я заметил, что это также приводит к разрешению прямых вызовов серверной части.
Например, если я нажимаю кнопку во внешнем интерфейсе (расположенную по адресу «frotend-url»), которая делает запрос на получение для внутреннего URI-кода «/ api / hello», прокси-сервер превращает его в «backend-url / api / hello. ". Однако, если я сделаю запрос на получение напрямую из Chrome, curl и т. Д. На «frontend-url / api / hello», это тоже сработает. Есть ли способ не допустить этого?
решение, которое я могу предложить, - использовать iptables для прямого ограничения доступа к внутреннему серверу, вот пример:
# Allow port to spessific IP
iptables -A INPUT -p tcp -s your-Frontend-IP_Address --dport 80 -j ACCEPT #if your API run on port 80
# Then Block access from all
iptables -A INPUT -p tcp -s 0.0.0.0/0 --dport 80 -j DROP
Это делает порт 80 доступным только для внешнего IP.