Chrome下強制http重定向到https的問題


問題:

Chrome會強制將http重定向到https,就算是在瀏覽器手動輸入http://xxx也不可以。

 

解決方案:

1. 在chrome的地址欄輸入chrome://net-internals/#hsts,在Query HSTS/PKP domain中查詢指定的域是否有HSTS記錄,如果存在,在Delete domain security policies中刪除該域即可。
2. 如果完成第一步后仍不能訪問,可以嘗試清除瀏覽器緩存。

 

原因:

要解釋上述情況產生的原因,則必須要先了解瀏覽器的HSTS功能。

HSTS強制要求瀏覽器與服務器進行HTTPS通信,例如,如果example.com站點開啟了HSTS,則不管是在瀏覽器輸入example.com或是http://example.com,亦或者在網頁上點擊http://example.com鏈接,瀏覽器都會自動將http替換為https,然后再發送請求。這樣很大程度上避免了SSL剝離攻擊的發生。

SSL剝離攻擊其實是中間人攻擊的一種,它基於用戶很少直接在瀏覽器中輸入https或者是用戶經常通過重定向從http跳轉到https,這樣攻擊者可以在用戶訪問http頁面時替換所有的https開頭的鏈接來阻止瀏覽器和服務器建立HTTPS連接。

之所以說是一定程度上避免,而不是完全避免,是因為HSTS也存在一定的漏洞,這個漏洞就是HSTS的開啟方式。瀏覽器如果探測到一個https請求的response頭部包含Strict-Transport-Security,則會為該站點開啟HSTS功能。這意味每個站點的第一次請求仍有被攻擊可能,所以大多數瀏覽器都會在本地維護一個HSTS域名列表,該列表默認會包含一些經常訪問的域名,並且,在訪問https站點時,也會將該站點添加到HSTS列表中。所以說,當用https訪問過一個站點后,即使用http再次訪問該站點,瀏覽器也會用https,而解決方法就是將該域名從HSTS列表中刪除。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM