如何防止其他人通過 proxy_pass 他們自己的域到我的域?

如何防止其他人通過 proxy_pass 他們自己的域到我的域?

人們可以使用 Nginx 來代理通行證在我的網域和瀏覽器上,內容是我的,但在網址列上是他們的網域。

如何偵測請求何時通過 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 協定連接到您的網站,您可以放心地假設它是透過 NGINXproxy_pass或某些協定連接到您的網站的。其他代理(NGINX 除外)。

因此,雖然這可行,但您會切斷所有僅透過某種代理瀏覽的客戶端...

這就是被動的方法。

主動方法只是檢查來自相同 IP 位址的多個連線。您將檢查日誌(例如 Fail2ban 或其他日誌掃描程式)以尋找來自相同 IP 位址的許多連接,這些連接具有不同的使用者代理程式(或沒有)。

具有大量不同使用者代理/存取權限的 IP 位址可能是某種代理。

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

相關內容