Люди могут использовать 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, чтобы узнать, исходит ли запрос от известного хостинг-провайдера.