?
本文檔使用 php中文網(wǎng)手冊 發(fā)布
Strict-Transport-Security
響應(yīng)報(bào)頭(通??s寫為 HSTS)是一種安全功能,可以讓一個(gè)網(wǎng)站告訴大家,它應(yīng)該只使用
HTTPS,而不是使用 HTTP 進(jìn)行通信的瀏覽器。
Header type | Response header |
---|---|
Forbidden header name | no |
Strict-Transport-Security: max-age=<expire-time>Strict-Transport-Security: max-age=<expire-time>; includeSubDomains Strict-Transport-Security: max-age=<expire-time>; preload
max-age=<expire-time>
以秒為單位,瀏覽器應(yīng)該記住,該站點(diǎn)只能通過 HTTPS 訪問。includeSubDomains
可選如果指定了此可選參數(shù),則此規(guī)則也適用于所有網(wǎng)站的子域。preload
可選參見預(yù)裝嚴(yán)格的運(yùn)輸安全細(xì)節(jié)。不是規(guī)范的一部分。
如果網(wǎng)站通過 HTTP 接受連接并重定向到 HTTPS,則在此情況下,用戶最初可能會(huì)在重定向之前與網(wǎng)站的非加密版本進(jìn)行通話,例如,如果用戶鍵入 http://www.foo .com / 甚至只是 foo.com。
這就為中間人攻擊提供了可能性,在這種攻擊中,可以利用重定向?qū)⒂脩粢龑?dǎo)至惡意站點(diǎn),而不是原始頁面的安全版本。
HTTP Strict Transport Security 頭允許網(wǎng)站通知瀏覽器它不應(yīng)該使用HTTP加載站點(diǎn),而應(yīng)該自動(dòng)將所有嘗試使用 HTTP 訪問站點(diǎn)的嘗試轉(zhuǎn)換為 HTTPS 請求。
注:Strict-Transport-Security
頭忽略瀏覽器時(shí),您的站點(diǎn)使用HTTP訪問; 這是因?yàn)楣粽呖赡軙?huì)攔截 HTTP 連接并注入頭部或?qū)⑵鋭h除。當(dāng)通過 HTTPS 訪問您的站點(diǎn)而不出現(xiàn)證書錯(cuò)誤時(shí),瀏覽器知道您的站點(diǎn)具有 HTTPS 功能,并會(huì)兌現(xiàn)Strict-Transport-Security
標(biāo)題。
您登錄機(jī)場的免費(fèi) WiFi 接入點(diǎn)并開始瀏覽網(wǎng)頁,訪問您的網(wǎng)上銀行服務(wù)以檢查您的余額并支付幾筆賬單。不幸的是,您使用的接入點(diǎn)實(shí)際上是黑客的筆記本電腦,它們攔截您的原始 HTTP 請求,并將您重定向到銀行網(wǎng)站的克隆而不是真實(shí)的東西?,F(xiàn)在你的私人數(shù)據(jù)暴露給黑客。
嚴(yán)格的交通安全解決了這個(gè)問題。只要您使用 HTTPS 訪問過您的銀行網(wǎng)站,并且該銀行的網(wǎng)站使用嚴(yán)格的傳輸安全性,您的瀏覽器就會(huì)知道只會(huì)自動(dòng)使用 HTTPS,這可以防止黑客執(zhí)行這種“中間人”攻擊。
您的網(wǎng)站首次使用 HTTPS 訪問并返回Strict-Transport-Security
標(biāo)題時(shí),瀏覽器會(huì)記錄此信息,以便將來嘗試使用
HTTP 加載網(wǎng)站時(shí)會(huì)自動(dòng)使用 HTTPS。
當(dāng) Strict-Transport-Security 標(biāo)頭指定的到期時(shí)間過去時(shí),下一次通過 HTTP 加載站點(diǎn)的嘗試將照常進(jìn)行,而不是自動(dòng)使用 HTTPS。
無論何時(shí)將 Strict-Transport-Security 頭傳遞給瀏覽器,它都會(huì)更新該站點(diǎn)的到期時(shí)間,以便站點(diǎn)可以刷新此信息并防止超時(shí)過期。如果需要禁用嚴(yán)格傳輸安全性,則將 max-age 設(shè)置為0(通過 https 連接)將立即使Strict-Transport-Security
標(biāo)題失效,從而允許通過 http 訪問。
Google 維護(hù)一個(gè) HSTS 預(yù)加載服務(wù)。按照指南并成功提交您的域名,瀏覽器將永遠(yuǎn)不會(huì)使用不安全的連接連接到您的域名。雖然該服務(wù)由 Google 托管,但所有瀏覽器都表示有意使用(或?qū)嶋H開始使用)預(yù)加載列表。
有關(guān) Chrome 中的 HSTS 預(yù)加載列表的信息:https://www.chromium.org/hsts
Firefox HSTS 預(yù)載列表的咨詢:nsSTSPreloadList.inc
所有現(xiàn)在和將來的子域名都是 HTTPS,最大年齡為1年。這會(huì)阻止訪問只能通過 HTTP 提供服務(wù)的頁面或子域。
Strict-Transport-Security: max-age=31536000; includeSubDomains
Specification | Status | Comment |
---|---|---|
HTTP Strict Transport Security (HSTS) | IETF RFC | Initial definition |
Feature | Chrome | Firefox | Edge | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic Support | 4.0 | 4 | 12 | 11 | 12 | 7 |
Feature | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
Basic Support | 4.4 | 18 | (Yes) | (Yes) | ? | ? | 8.4 |