摘要:網站可以選擇使用策略,來讓瀏覽器強制使用與網站進行通信,以減少會話劫持風險。谷歌想出了一個辦法把想啟用的所有站點的域名預先寫進瀏覽器代碼不就好了。谷歌維護了一個名為的網站,專門用于申請讓瀏覽器給各站點內置開啟支持。
由于 Let"s Encrypt 等免費證書的存在,各位站長都可以很容易的加固自己的網站。然而 HTTPS 不是萬能藥,并不是加入 HTTPS 支持就萬事大吉了。
譬如說,就算你加入了 HTTPS 支持,要如何讓用戶使用 HTTPS 連接呢?包括筆者在內,估計沒有人會手工輸入那個奇怪的 https:// 協議頭,而瀏覽器總是會把無協議頭的網址默認當做 http 協議。于是,當用戶輸入了你網址的域名回車的時候,用戶的電腦就和你的服務器建立了非安全的連接。有人說他們已經配置服務器當用戶使用 HTTP 協議連接時重定向至 HTTPS,但這樣并不完全解決問題:就算返回的是一個 301 重定向,未加密就是未加密,中間人可以為所欲為,比如讀取用戶上傳的請求頭,篡改服務器返回的 301 地址到別的網站等。
必須由一種機制強制用戶使用 HTTPS 協議連接服務器,這就是 HSTS 的作用。
什么是 HSTSHTTP嚴格傳輸安全(英語:HTTP Strict Transport Security,縮寫:HSTS)是一套由互聯網工程任務組發布的互聯網安全策略機制。網站可以選擇使用 HSTS 策略,來讓瀏覽器強制使用 HTTPS 與網站進行通信,以減少會話劫持風險。
對于啟用 HSTS 的網站,瀏覽器會做到以下幾點:
強制使用 HTTPS 協議連接。對于不安全的訪問協議,瀏覽器會在內部將其重定向至 HTTPS 協議。包括并不限于
用戶沒有輸入協議頭
用戶輸入了 http:// 協議頭
當瀏覽器發現服務器證書錯誤,強制阻止用戶建立連接
如何啟用 HSTS添加返回頭:
Strict-Transport-Security: max-age=<過期時間>; includeSubDomains
其中 includeSubDomains 是可選的,表示給當前域名下的子域名也啟用 HSTS 支持。
值得注意的是:客戶端必須與服務器建立安全連接時(當使用 HTTPS 協議連接并且無證書錯誤) Strict-Transport-Security 頭才會被瀏覽器認可。這是因為非安全連接下中間人可以添加或者刪除這個頭,在建立真正安全的連接時一切都是不可信的。
如果要提前關閉 HSTS,可以使用類似清除 Cookie 的做法:
Strict-Transport-Security: max-age=0; includeSubDomains
同樣需要建立安全連接才會生效。
預加載 HSTS前面提到,HSTS 是服務器返回給瀏覽器的一個返回頭,并且只會在建立安全連接時才會生效。那么就引出了另一個問題:如果用戶從未訪問過你的網站,而在第一次訪問就被劫持了怎么辦?
所以問題在于,除非客戶端與服務器建立過連接,否則瀏覽器不知道服務器是否支持 HTTPS 請求,更不知道該站點是否想要啟用 HSTS。谷歌想出了一個辦法:把想啟用 HSTS 的所有站點的域名預先寫進瀏覽器代碼不就好了。這就是 Preloading Strict Transport Security。
谷歌維護了一個名為 HSTS Preload List Submission 的網站,專門用于申請讓瀏覽器給各站點內置開啟 HSTS 支持。申請預加載 HSTS 需要站點滿足更為嚴格的條件:
提供一個有效的證書。
如果你的站點同時啟用了 HTTP 支持(監聽 80 端口),必須把 HTTP 重定向到同一域名的 HTTPS 網址(例如將 http://domain.com 重定向到 https://www.domain.com 是不可以的)
所有子域名也必須啟用 HTTPS 連接
返回一個滿足以下條件的 HSTS 頭
max-age 至少需要 18 個月(大于等于 10886400 秒)
必須指定 includeSubDomains
必須指定 preload(preload 是谷歌給 HSTS 頭添加的擴展值)
如果這個域名會重定向到另一個域名,前面的域名也必須添加 HSTS 頭(例如 https://domain.com 重定向到 https://www.domain.com,前者需要添加 HSTS 頭)
滿足這些條件后,你就可以在其官方網站上給你的域名申請預加載 HSTS。如果申請通過,等待一段時間后你的域名就會被 Hard code 到瀏覽器內部了。不僅是 Chrome,IE、Edge、Firefox 都會采用。可以用這個網站檢測你域名是否支持預加載 HSTS。
PS:EOI 的頂級域名 eoitek.com 同樣支持預加載 HSTS,不來轉轉么?
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/40570.html
摘要:網站可以選擇使用策略,來讓瀏覽器強制使用與網站進行通信,以減少會話劫持風險。谷歌想出了一個辦法把想啟用的所有站點的域名預先寫進瀏覽器代碼不就好了。谷歌維護了一個名為的網站,專門用于申請讓瀏覽器給各站點內置開啟支持。 由于 Lets Encrypt 等免費證書的存在,各位站長都可以很容易的加固自己的網站。然而 HTTPS 不是萬能藥,并不是加入 HTTPS 支持就萬事大吉了。 譬如說,就...
摘要:證書證書被稱為擴展驗證型證書,是因為申請證書不僅需要驗證域名所有權,按規定提交企業真實身份驗證材料,還要求提供更加詳細的企業信息如具體營業地址等信息,并提供具有法律效力的證明文件如律師函等。以最大限度降低用戶訪問不安全網站的風險。 什么是 HTTPS? HTTPS(超文本傳輸安全協議)是一種互聯網通信安全協議,它確保在用戶的計算機與網站終端服務器之間傳遞的數據的完整性和機密性。所以,為...
摘要:啟用嚴格傳輸安全協議來進一步減少遭受攻擊的可能。這些措施將使攔截流量變得極其困難。這種情況在酒吧賓館火車和其他公共場所非常普遍。部分使用也將面臨被動攔截的風險。 許多Web開發者都知道SSL,但常見的情況是SSL沒有完整地部署或者沒有部署在它應該部署的地方。這篇關于何時及如何部署SSL的簡要指南,將幫助你避免大多數常見錯誤。 要點 如果你有任何機密信息,或者你要進行用戶登陸,哪怕...
摘要:綜上所述,認為沒有提供的保護,用戶會過得更好安全研究人員并不完全反對這一決定。內容安全策略是一個額外的安全層,用于檢測并削弱某些特定類型的攻擊,包括跨站腳本和數據注入攻擊等。 這是關于web安全性系列文章的第 三 篇,其它的可點擊以下查看: Web 應用安全性: 瀏覽器是如何工作的 Web 應用安全性: HTTP簡介 目前,瀏覽器已經實現了大量與安全相關的頭文件,使攻擊者更難利用漏...
閱讀 1610·2023-04-25 16:29
閱讀 948·2021-11-15 11:38
閱讀 2283·2021-09-23 11:45
閱讀 1410·2021-09-22 16:03
閱讀 2531·2019-08-30 15:54
閱讀 1197·2019-08-30 10:53
閱讀 2599·2019-08-29 15:24
閱讀 1094·2019-08-26 12:25