Nginx

如何防止其他人將自己的域proxy_pass到我的域?

  • January 25, 2020

人們可以使用 Nginx代理_pass到我的域,在瀏覽器上,內容是我的,但在地址欄上是他們的域。

如何檢測請求何時通過’proxy_pass 並拒絕這些請求?

例如,當我故意 proxy_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 協議連接到您的網站,您可以放心地假設它是通過 NGINXproxy_pass其他一些代理(NGINX 除外)。

因此,儘管這可行,但您會切斷所有僅通過某種代理瀏覽的客戶端…

那是被動的方法。

主動方法只是檢查來自同一 IP 地址的多個連接。您將檢查日誌(例如 Fail2ban 或其他日誌掃描程序)是否有來自同一 IP 地址的許多連接,具有不同的使用者代理(或沒有)。

具有許多不同使用者代理/訪問權限的 IP 地址可能是某種代理。

最後,您可以進行 RDNS 檢查/whois 查詢以查看請求是否來自已知的託管服務提供商。

引用自:https://serverfault.com/questions/1000212