HSTS 如何處理混合內容?
如果我在我的伺服器上正確實施了 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 僅改變使用純 HTTP 載入並執行來自啟用 HSTS 的域的圖像的情況
307 Internal Redirect
。值得注意的是:這是一種不涉及混合內容警告的情況。因此,HSTS 不能作為混合內容問題的快速解決方案:
即使是域本身,您也需要修復
http://
站點上的 URL。您需要確保不從您不信任的來源載入外部腳本。
- 如果第三方不啟用 HSTS,它仍然容易受到中間人攻擊。
- 第三方可能會從其他外部來源載入內容,所有這些也適用於這些來源。
- 外部內容站點可能會自行破解或進行惡意活動。