Назад | Перейти на главную страницу

Как запретить другим людям использовать proxy_pass свои собственные домены в моем домене?

Люди могут использовать Nginx для proxy_pass в моем домене и в браузере содержимое - это мины, а в адресной строке - их домены.

Как определить, когда запросы проходят через proxy_pass, и отклонить их?

Например, когда я намеренно прокси_pass на google.com, я получаю ошибку 404.

server {
  listen 80;
  server_name test.com;

  location / {
    proxy_pass https://google.com;
  }
}

Кажется, что это невозможно предотвратить, например, эти люди заставляют прокси вести себя так же, как обычный браузер. Однако как предотвратить, если они просто используют простой Nginx proxy_pass?

Теоретически можно, но не без больших усилий.

Предположительно, у вас есть веб-сайт с поддержкой HTTP / 2.

Обнаружение proxy_pass на ваш сайт может основываться на том факте, что эти соединения всегда будут исходить из HTTP/1.x и никогда через HTTP/2.

Затем вы можете сопоставить это с возможностями браузера.

Итак, по сути, если вы видите, что браузер с поддержкой HTTP / 2 подключается к вашему веб-сайту по более старому протоколу HTTP / 1.x, вы можете с уверенностью предположить, что он находится через NGINX. proxy_pass или несколько Другой прокси (кроме NGINX).

Таким образом, хотя это может сработать, вы отключите всех клиентов, которые просто просматривают какой-либо прокси ...

Это пассивный подход.

Активный подход заключается в простой проверке количества подключений с одного и того же IP-адреса. Вы будете проверять журналы (например, Fail2ban или другие сканеры журналов) на наличие множества подключений с одного и того же IP-адреса, с разными пользовательскими агентами (или без них).

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

Наконец, вы можете выполнить запросы RDNS check / whois, чтобы узнать, исходит ли запрос от известного хостинг-провайдера.