使用https的HSTS需要注意的一個問題


HSTS(HTTP Strict Transport Security) 簡單來說就是由瀏覽器進行http向https的重定向。如果不使用HSTS,當用戶在瀏覽器中輸入網址時沒有加https,瀏覽器會默認使用http訪問,所以對於https站點,通常會在服務端進行http至https的重定向。如果用了HSTS,就可以減少服務端的這次重定向。

當我們部署https時,發現HSTS的這個用處后,立馬就使用了它,使用方法很簡單——在響應頭中加上 strict-transport-security:max-age=31536000 。

但后來通過星巴克的WiFi訪問我們的https站點時發現了一個問題。在瀏覽器中輸入網址后,沒有出現星巴克WiFi的登錄頁面,而是瀏覽器認為這是不安全連接,不允許訪問,只能先訪問一個http站點,出現星巴克WiFi登錄頁面並完成登錄后才能訪問我們的https站點。

背后的原因很簡單,由於我們的站點啟用了HSTS,瀏覽器默認會以https方式發出請求,星巴克的WiFi攔截了請求,以http的方式返回了WiFi登錄頁面,瀏覽器收到后一看這不安全,立馬停止連接。如果不啟用HSTS,在服務端進行重定向,就不會有這個問題。

只要基於http進行驗證的WiFi都會有這個問題,所以在部署https時是否啟用HSTS需要考慮這個因素。如果你原先啟用HSTS,現在想取消,不能直接去掉strict-transport-security響應頭,而是要改為 strict-transport-security:max-age=0 ,不然之前使用了HSTS的瀏覽器在過期之前會一直使用HSTS。

 


免責聲明!

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



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