摘要:本文簡(jiǎn)單介紹與安全相同的響應(yīng)頭部,內(nèi)容整理自。參數(shù)參數(shù)說(shuō)明指定的時(shí)間秒范圍內(nèi)瀏覽器總是使用來(lái)訪問(wèn)可選參數(shù),是否同時(shí)應(yīng)用于當(dāng)前域名的所有子域名示例是一種防止網(wǎng)站被攻擊者使用錯(cuò)誤發(fā)布或其他欺詐性證書冒充安全證書的安全機(jī)制。
本文簡(jiǎn)單介紹與安全相同的 HTTP 響應(yīng)頭部,內(nèi)容整理自《OWASP Secure Headers Project》。
HTTP Strict Transport SecurityHTTP Strict Transport Security(HSTS) 是一種網(wǎng)絡(luò)安全策略機(jī)制,用于防范降級(jí)攻擊(Downgrade Attack)和 Cookie 劫持(Cookie Hijacking)。它允許服務(wù)器告訴瀏覽器(或其他代理)只能使用 HTTPS 訪問(wèn)服務(wù),禁止使用 HTTP。實(shí)現(xiàn)了 HSTS 策略的服務(wù)器通過(guò) HTTPS 鏈接的 Strict-Transport-Security 頭部告訴客戶端其策略,HTTP 中的 HSTS 頭部會(huì)被忽略。
參數(shù):
參數(shù) | 說(shuō)明 |
---|---|
max-age=SECONDS | 指定的時(shí)間(秒)范圍內(nèi)瀏覽器總是使用 HTTPS 來(lái)訪問(wèn) |
includeSubDomains | 可選參數(shù),是否同時(shí)應(yīng)用于當(dāng)前域名的所有子域名 |
示例:
Strict-Transport-Security: max-age=31536000; includeSubDomainsPublic Key Pinning Extension for HTTP
HTTP Public Key Pinning (HPKP)是一種防止 HTTPS 網(wǎng)站被攻擊者使用錯(cuò)誤發(fā)布或其他欺詐性證書冒充安全證書的安全機(jī)制。例如,攻擊者可能會(huì)欺騙證書頒發(fā)機(jī)構(gòu),然后為錯(cuò)誤的為其頒發(fā)證書。
HTTPS 服務(wù)器會(huì)通過(guò)頭部提供一個(gè)公鑰哈希列表,在后續(xù)的請(qǐng)求中,客戶端期望服務(wù)端在證書鏈中使用其中一個(gè)或多個(gè)公鑰哈希。想要安全的部署 HPKP,要求具有成熟的部署和管理機(jī)制,否則主機(jī)可能會(huì)因?yàn)楣潭ǖ揭唤M無(wú)效的公鑰哈希而使得服務(wù)不可用。一旦成功部署,能夠大大減小中間人攻擊和其他虛假認(rèn)證問(wèn)題。
參數(shù):
參數(shù) | 說(shuō)明 |
---|---|
pin-sha256=" |
Base64 編碼的公鑰信息指紋,可以指定多個(gè)不同的公鑰 |
max-age=SECONDS | 指定的時(shí)間(秒)范圍內(nèi)總是使用其中一個(gè)固定的 key |
includeSubDomains | 可選參數(shù),是否同時(shí)應(yīng)用于所有子域名 |
report-uri=" |
可選參數(shù),pin 校驗(yàn)失敗后的上報(bào)地址 |
示例:
Public-Key-Pins: pin-sha256="d6qzRu9zOECb90Uez27xWltNsj0e1Md7GkYYkVoZWmM="; pin-sha256="E9CZ9INDbd+2eRQozYqqbQ2yXLVKB9+xcprMF+44U1g="; report-uri="http://example.com/pkp-report"; max-age=10000; includeSubDomainsX-Frame-Options
X-Frame-Options 響應(yīng)頭部用于保護(hù)網(wǎng)絡(luò)應(yīng)用遭受點(diǎn)擊劫持(Clickjacking)攻擊。它用來(lái)控制網(wǎng)站是否顯示其它域的 內(nèi)容。
參數(shù):
參數(shù) | 說(shuō)明 |
---|---|
deny | 不顯示 內(nèi)容 |
sameorigin | 只顯示來(lái)自同域的 內(nèi)容 |
allow-from: |
只顯示指定域名的 內(nèi)容 |
示例:
X-Frame-Options: denyX-XSS-Protection
X-XSS-Protection 用來(lái)開啟瀏覽器自帶的 XSS 防護(hù)。
參數(shù):
參數(shù) | 說(shuō)明 |
---|---|
0 | 不開啟 |
1 | 開啟,當(dāng)瀏覽器檢測(cè)到 XSS 攻擊時(shí),會(huì)清除不安全的內(nèi)容 |
1;mode=block | 開啟,當(dāng)瀏覽器檢測(cè)到 XSS 攻擊時(shí),不會(huì)清除內(nèi)容,而是會(huì)阻止頁(yè)面加載 |
1;report= |
(Chrome Only)開啟,當(dāng)瀏覽器檢測(cè)到 XSS 攻擊時(shí),將清除不安全內(nèi)容并使用 CSP report-uri 指令發(fā)送違規(guī)報(bào)告 |
示例:
X-XSS-Protection: 1; mode=blockX-Content-Type-Options
設(shè)置該頭部可以防止瀏覽器把響應(yīng)解析為指定 Content-Type 以外的類型。例如,一個(gè) HTML 文檔的 Content-Type 為 text/plain,但是有些瀏覽器仍然會(huì)把文檔當(dāng)做 HTML 來(lái)解析。
參數(shù):
參數(shù) | 說(shuō)明 |
---|---|
nosniff | 阻止瀏覽器自動(dòng)推測(cè)類型 |
示例:
X-Content-Type-Options: nosniffContent-Security-Policy
Content-Security-Policy(CSP)可以用來(lái)定義詳細(xì)的安全策略。它可以大范圍地控制瀏覽器行為,例如默認(rèn)不允許內(nèi)嵌腳本,除非顯式聲明允許。
CSP 的設(shè)置較為復(fù)雜,由指令和參數(shù)組成,指令之間使用 ; 分割,參數(shù)之間使用空格分割。指令的值即為參數(shù)。
參數(shù):
指令 | 說(shuō)明 |
---|---|
base-uri | 定義相對(duì) URI 的基礎(chǔ) URI |
default-src | 定義所有資源加載的默認(rèn)策略,如果對(duì)應(yīng)類型的資源加載策略沒有定義,則會(huì)使用該策略 |
script-src | 定義可以執(zhí)行的 Script 來(lái)源 |
object-src | 定義 、、 等可以加載的插件來(lái)源 |
style-src | 定義允許加載的樣式來(lái)源 |
img-src | 定義允許加載的圖片來(lái)源 |
media-src | 定義允許加載的視頻和音頻來(lái)源 |
frame-src | 定義允許嵌入的 來(lái)源(已棄用,請(qǐng)使用 child-src 代替) |
child-src | 定義允許嵌入的 來(lái)源 |
font-src | 定義允許加載的字體來(lái)源 |
connect-src | 定義允許訪問(wèn)的接口域名 |
manifest-src | 定義允許加載的資源清單來(lái)源 |
form-action | 定義允許在 中使用的 action 域名 |
sandbox | 定義 HTML 沙盒策略 |
script-nonce | 要求 script 必須帶上隨機(jī)串(SRI 相關(guān)) |
referrer | 定義客戶端必須發(fā)送 Referer 頭部信息 |
report-uri | 定義違規(guī)報(bào)告的發(fā)送地址 |
參數(shù) | 說(shuō)明 |
---|---|
"none" | 不允許任何內(nèi)容 |
"self" | 允許同源內(nèi)容 |
data: | 允許 data: 協(xié)議 |
www.example.com | 允許指定域名內(nèi)容 |
.example.com | 允許子域名內(nèi)容 |
https://example.com | 允許指定域名且協(xié)議匹配的內(nèi)容 |
https: | 允許加載 HTTPS 資源 |
"unsafe-inline" | 允許行內(nèi)資源,如行內(nèi) JS 和 CSS 、style 屬性、onclick 屬性等 |
"unsafe-eval" | 允許 js 動(dòng)態(tài)代碼,如 eval |
示例:
Content-Security-Policy: default-src *; script-src "self" "unsafe-inline" "unsafe-eval"; report-uri https://example.com/reportReferrer-Policy
Referfer-Policy 響應(yīng)頭部控制瀏覽器應(yīng)該在 Referrer 請(qǐng)求頭部中發(fā)送什么信息。
參數(shù):
參數(shù) | 說(shuō)明 |
---|---|
no-referrer | 不發(fā)送 Referrer 頭部 |
no-referrer-when-downgrade | 默認(rèn)值,HTTPS 轉(zhuǎn) HTTP 時(shí)不發(fā)送 Referrer 頭部 |
origin | 只發(fā)送文檔源域名 |
origin-when-cross-origin | 同域時(shí)發(fā)送完整的 URL,跨域時(shí)只發(fā)送源域名 |
same-origin | 同域時(shí)才發(fā)送,跨域時(shí)不發(fā)送 |
strict-origin | 只有在 HTTPS 轉(zhuǎn) HTTPS 時(shí)才發(fā)送源域名,其他情況不發(fā)送 |
strict-origin-when-cross-origin | 同域時(shí)發(fā)送完整 URL,HTTPS 轉(zhuǎn) HTTPS 時(shí)發(fā)送源域名,HTTPS 轉(zhuǎn) HTTP 時(shí)不發(fā)送 |
unsafe-url | 發(fā)起同域或跨域請(qǐng)求時(shí)發(fā)送完整 URL(不含參數(shù)) |
示例:
Referrer-Policy: no-referrer
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/11406.html
摘要:常規(guī)寫法速記法判斷變量是否存在速記法這可能會(huì)有些瑣碎,但是值得一提。常規(guī)寫法速記法注意這兩個(gè)例子并不是完全相等,只要變量是一個(gè)真值,該表達(dá)式就是成立的。 19+ 個(gè) JavaScript 快速編程技巧 — SitePoint 這確實(shí)是一篇針對(duì)于基于 JavaScript 語(yǔ)言編程的開發(fā)者必讀的文章。在過(guò)去幾年我學(xué)習(xí) JavaScript 的時(shí)候,我寫下了這篇文章,并將其作為 JavaS...
摘要:常規(guī)寫法速記法判斷變量是否存在速記法這可能會(huì)有些瑣碎,但是值得一提。常規(guī)寫法速記法注意這兩個(gè)例子并不是完全相等,只要變量是一個(gè)真值,該表達(dá)式就是成立的。 19+ 個(gè) JavaScript 快速編程技巧 — SitePoint 這確實(shí)是一篇針對(duì)于基于 JavaScript 語(yǔ)言編程的開發(fā)者必讀的文章。在過(guò)去幾年我學(xué)習(xí) JavaScript 的時(shí)候,我寫下了這篇文章,并將其作為 JavaS...
摘要:子選擇器只對(duì)直接后代有影響的選擇器,而對(duì)孫子后代以及多層后代不產(chǎn)生作用。注意在中,只支持后代選擇器,不支持子選擇器盒子模型框模型介紹給下的設(shè)置寬度,那么他們將平均掉它們所占容器的寬度。元素要單獨(dú)占一行。 贊助我以寫出更好的文章,give me a cup of coffee? 2017最新最全前端面試題 選擇器的分組 CSS選擇器分為 1.群組選擇器 如:p, body, img,...
摘要:代碼資料文件文件文件關(guān)于系列的的網(wǎng)頁(yè)的操作需要權(quán)限的相關(guān)文檔關(guān)于瀏覽器無(wú)法一些元素?zé)o法設(shè)置屬性的解決方案和原因 react代碼資料: 文件:packages/react-dom/src/client/setInnerHTML.js /** * Copyright (c) Facebook, Inc. and its affiliates. * * This source code...
閱讀 2179·2021-11-25 09:43
閱讀 2261·2021-11-24 09:39
閱讀 1555·2021-11-22 12:02
閱讀 2992·2021-11-17 09:33
閱讀 3418·2021-11-15 11:38
閱讀 2744·2021-10-13 09:40
閱讀 1075·2021-09-22 15:41
閱讀 1693·2019-08-30 10:58