Windows

使用 Windows 主機文件將外部 URL 重定向到子域?

  • September 17, 2018

我將發布此問題,如果社區確定需要詳細說明或澄清,我將對其進行編輯。

問題

我今天想到了一個絕妙的主意。我經常在 Amazon.com 上購物。亞馬遜提供了一項計劃,您所有購買的一部分都將捐給您選擇的名為“亞馬遜微笑”的慈善機構。您可以通過訪問“smile.amazon.com”(amazon.com 的子域)選擇“啟動”慈善機構。每當我鍵入“amazon.com”以自動轉到“smile.amazon.com”時,我想使用 Windows 10 主機文件進行重定向,以便我的慈善事業始終受益。不幸的是,它沒有像我希望的那樣工作。

我試過的

首先,我以管理員身份打開 Notepad.exe。然後,我從記事本打開主機文件(路徑:)

C:\Windows\System32\drivers\etc\hosts

並嘗試了以下所有方法,但無濟於事:

  • 直接網址轉換

smile.amazon.com amazon.com

  • 使用 CMD ping 以獲取 Smile.amazon.com ( 54.239.26.123 )的 URL

54.239.26.123 amazon.com

  • 還添加了 www 子域路由

54.239.26.123 amazon.com 54.239.26.123 www.amazon.com

  • 它似乎都不起作用(當我輸入 amazon.com 時,URL 欄中的地址不會更改為“smile.amazon.com”),但是,存在某種證書錯誤。我嘗試了 4 個瀏覽器,包括 Firefox、Chrome、SeaMonkey 和 IceDragon,(清除所有瀏覽器的記憶體),但無濟於事。

  • 根據此伺服器故障文章,我嘗試了以下操作:

    • ipconfig /flushdns
    • ping smile.amazon.com Pinging smile.amazon.com [54.239.26.123] with 32 bytes of data: Request timed out.
    • C:\WINDOWS\system32>nbtstat -R Successful purge and preload of the NBT Remote Cache Name Table.

證書/安全錯誤

進行上述更改後,我收到此錯誤:

鉻合金:

你的連接不是私人的

攻擊者可能試圖從 www.amazon.com 竊取您的資訊(例如,密碼、消息或信用卡)。NET::ERR_CERT_COMMON_NAME_INVALID

如果我點擊“高級”,我會得到這個:

該伺服器無法證明它是 www.amazon.com;它的安全證書來自smile.amazon.com。這可能是由於配置錯誤或攻擊者攔截了您的連接造成的。

當我點擊繼續訪問亞馬遜時,瀏覽器會將我帶到 amazon.com,我在 url 中看到了這個:

(https

$$ crossed-out $$)://www.amazon.com


我的問題

所以,我想我想知道的是:

  1. 甚至可以通過 Windows 主機文件將 amazon.com 重定向到smile.amazon.com 嗎?
  2. 我該怎麼做?

DNS 解析和 HTTP 重定向是完全不同的東西,這種方法是錯誤的。毒化您的本地 DNS 解析以強制執行“amazon.com”解析以偽造“smile.amazon.com”IP 只會導致伺服器端出現 SSL 證書、HTTP 會話和跨站點請求拒絕問題:

首先,SSL證書。amazon.com 和smile.amazon.com 使用子域特定證書提供服務,因此瀏覽器會在出現與證書名稱不匹配的 URL 請求時向使用者提出錯誤。因此,如果您向支持“smile.amazon.com”的伺服器請求“amazon.com”資源,即使在執行 HTTP 請求之前,由於證書名稱不匹配,您的瀏覽器也會警告您。當然,您可能會忽略這一點,但支持應用程序邏輯的 javascript 可能不會出現跨域請求,從而使 Web 完全無用。

其次,如果您以任何方式繞過 SSL 問題,您的瀏覽器將向 Smile.amazon.com 發送請求,詢問 amazon.com 的內容,這將導致伺服器端提出各種安全機制來拒絕此類跨站點要求。

最後,預計伺服器端會話管理、身份驗證、cookie 驗證等會出現各種問題。

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