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

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

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

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

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

server {
  listen 80;
  server_name test.com;

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

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

решение1

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

Предположим, вы используете веб-сайт, поддерживающий HTTP/2.

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

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

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

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

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

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

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

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

Связанный контент