Content Security Policy 學習筆記之三:CSP 指令的使用方式
HTTP 安全標頭是網站安全的重要組成部分。 它們保護店面免受潛在攻擊,例如 XSS、代碼注入、點擊劫持等。
Owasp 很好地概述了可以應用的各種標頭。
HTTP Strict-Transport-Security
HSTS 安全標頭強制 Web 瀏覽器僅通過 https 訪問店面。 這可以防止潛在的協議降級和 cookie 劫持。
這是一個非?;镜臉祟^,應該默認應用于 Storefront 應用程序。
以下片段顯示了一個示例標頭配置:
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options
X-Frame-Options 標頭可用于防止將 Spartacus 加載到另一個來源的 iframe 中,這是減輕點擊劫持的常用方法。點擊劫持是一種惡意技術,它誘使用戶點擊與用戶感知不同的內容,通常通過在原始站點的 iframe 上進行覆蓋來完成。
然而,這個 X-Frame-Options 標頭只能有兩個值,DENY 或 SAMEORIGIN。這對于 Spartacus 作為防止點擊劫持的默認策略來說太有限了,因為 Spartacus 店面在 SmartEdit 中的 iframe 中運行。 SmartEdit 在 iframe 中加載 Spartacus,實際上故意使用 Clickjacking 技術來支持內聯內容管理。
Content-Security-Policy: frame-ancestors 提供了一種更復雜的方法來解決點擊劫持,因此可以使用 SmartEdit,同時仍然能夠防止點擊劫持。 CSP 將在下文進一步詳述。為了確保 IE11 用戶也受到保護,X-Frame-Options 的使用仍然是相關的。如果存在帶有 frame-ancestors 指令的 CSP 標頭,現代瀏覽器將完全忽略 X-Frame-Options 標頭。
X-XSS-Protection
通常建議不要使用 X-XSS-Protection 安全標頭,因為它可以“在客戶端引入額外的安全問題”。參看這個鏈接。
X-Content-Type-Options
為了防止用戶將惡意文件上傳到后端 API(AKA MIME 嗅探漏洞),可以添加 X-Content-Type-Options 標頭。
由于審核可能會報告缺少 X-Content-Type-Options,因此建議無論如何添加此標頭。
例子:
X-Content-Type-Options: nosniff
Content Security Policy (CSP)
CSP 可防止各種攻擊,包括跨站點腳本和其他跨站點注入。 可以使用多個指令詳細指定該策略。
該政策應包括以下指令:
frame-ancestors 指令:允許將店面加載到 SmartEdit 框架中。
script-src 指令可防止從未知位置加載腳本。 這不僅包括 spartacus 靜態資源,還包括 SmartEdit、Qualtrics 等用于集成的第三方 JS 文件。
script-src 指令不應使用 unsafe-inline 或 unsafe-eval 來防止 XSS。
object-src 指令以避免任何不安全的執行(即 flash、java 等)。
default-src 限制為僅使用 https
參考這篇文檔。
API Explorer JavaScript 通用安全
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。