Ssl

HSTS 如何處理混合內容?

  • August 20, 2018

如果我在我的伺服器上正確實施了 SSL 證書,我剛剛檢查了SSL 伺服器測試。我在他們的排名中獲得了 A 級**,但如果您啟動了HSTS,您可以獲得A+**。經過一番搜尋,我發現Google可能會將 HSTS 視為排名因素。因此,它似乎與 SEO 相關。在實施 HSTS 之前,我有一些問題。

問題 1

如果某些外部 javascripts 在我的網站上傳入例如通過 http(而不是 https)的圖像,會發生什麼?HSTS 會阻止整個頁面載入還是僅阻止特定的“不安全”內容?

問題2

目前(沒有 HSTS)如果通過 http 載入資源,我會收到“混合內容”警告。如果啟動 HSTS,“混合內容”是否真的存在?

HSTS 根本不嘗試處理混合內容:它只是控制瀏覽器307在嘗試載入 HTTP URL 時是否應該執行內部重定向到 HTTPS。混合內容警告是瀏覽器的一個功能,目前所有的瀏覽器都會這樣做(Mozilla Firefox 23+、Google Chrome 21+、Internet Explorer 10+、Edge from the beginning…)。混合內容警告塊,例如<script><iframe>,但不是<img>

在載入任何內容之前,即在 HSTS 重定向之前,檢查所有提到的瀏覽器上的混合內容警告。這似乎很自然,也很容易測試。預設情況下,即使使用純 HTTP 也會載入所有外部圖像,並且僅針對腳本和 iframe 給出混合內容警告。

沒有 HSTS 的混合內容

HSTS 僅改變使用純 HTTP 載入並執行來自啟用 HSTS 的域的圖像的情況307 Internal Redirect。值得注意的是:這是一種不涉及混合內容警告的情況。

與 HSTS 混合的內容

因此,HSTS 不能作為混合內容問題的快速解決方案

  • 即使是域本身,您也需要修復http://站點上的 URL。

  • 您需要確保不從您不信任的來源載入外部腳本。

    • 如果第三方不啟用 HSTS,它仍然容易受到中間人攻擊。
    • 第三方可能會從其他外部來源載入內容,所有這些也適用於這些來源。
    • 外部內容站點可能會自行破解或進行惡意活動。

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