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