Web 安全之內容安全策略 (CSP)

OneAPM官方技術部落格發表於2015-12-24

內容安全策略 (CSP, Content Security Policy) 是一個附加的安全層,用於幫助檢測和緩解某些型別的攻擊,包括跨站指令碼攻擊 (XSS) 和資料注入等攻擊。

這些攻擊可用於實現從資料竊取到網站破壞或作為惡意軟體分發版本等用途。內容安全策略在現代瀏覽器中已經包含,使用的是 W3C CSP 1.0 標準中描述的 Content-Security-Policy 頭部和指令。

那麼如何應用?

CSP 可以由兩種方式指定:HTTP Header 和 HTML。HTTP 是在 HTTP 由增加 Header 來指定,而 HTML 級別則由 Meta 標籤指定。

CSP 有兩類:Content-Security-Policy 和 Content-Security-Policy-Report-Only。(大小寫無關)

HTTP header :
"Content-Security-Policy:" 策略
"Content-Security-Policy-Report-Only:" 策略

HTTP Content-Security-Policy 頭可以指定一個或多個資源是安全的,而Content-Security-Policy-Report-Only則是允許伺服器檢查(非強制)一個策略。多個頭的策略定義由優先採用最先定義的。

HTML Meta :
<meta http-equiv="content-security-policy" content="策略">
<meta http-equiv="content-security-policy-report-only" content="策略">

Meta 標籤與 HTTP 頭只是行式不同而作用是一致的。與 HTTP 頭一樣,優先採用最先定義的策略。如果 HTTP 頭與 Meta 定義同時存在,則優先採用 HTTP 中的定義。

如果使用者瀏覽器已經為當前文件執行了一個 CSP 的策略,則會跳過 Meta 的定義。如果 META 標籤缺少 content 屬性也同樣會跳過。

針對開發者草案中特別的提示一點:為了使用策略生效,應該將 Meta 元素頭放在開始位置,以防止提高人為的 CSP 策略注入。

如今,多樣化的攻擊手段層出不窮,傳統安全解決方案越來越難以應對網路安全攻擊。OneASP 自適應安全平臺整合了預測、預防、檢測和響應的能力,為您提供精準、持續、視覺化的安全防護。想閱讀更多技術文章,請訪問 OneAPM 官方技術部落格 本文轉自 OneAPM 官方部落格

相關文章