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