什么是內(nèi)容安全策略?
內(nèi)容安全政策(CSP)是一項網(wǎng)絡(luò)標(biāo)準(zhǔn),它授予了網(wǎng)絡(luò)開發(fā)人員額外的控制權(quán),他們可決定允許客戶端瀏覽器從何處加載資源或允許哪些其他網(wǎng)站與開發(fā)人員的網(wǎng)站進(jìn)行交互。例如,使用此示例策略,開發(fā)人員可以指定允許從其自己的站點安全地加載任何內(nèi)容類型,還可以從任何域加載圖像,但僅允許從單獨的經(jīng)過驗證的第三方域加載JavaScript庫和腳本:
default-src'self';img-src*;script-src https://userscripts.example.com
為什么要使用內(nèi)容安全策略?
通過正確配置的策略,您和用戶可享有針對特定攻擊的額外安全防護(hù)。通常,它可用于防止和/或減輕涉及內(nèi)容/代碼注入的攻擊,例如跨站點腳本/XSS攻擊、需要嵌入惡意資源的攻擊、涉及惡意使用iframe的攻擊(例如點擊劫持攻擊)等。更常見的情況下,通過它您可以控制訪問您的站點的客戶端中顯示的內(nèi)容從何處加載。
如何編寫策略?
可在以下地址查看示例中使用的案例和策略:https://developer.mozilla.org/en-US/docs/Web/Security/CSP/Using_Content_Security_Policy
http://w3c.github.io/webappsec-csp/和https://developer.mozilla.org/en-US/docs/Web/Security/CSP/CSP_policy_directives提供了更完整的指令和使用說明,以及實施注意事項和客戶端支持信息。
https://developer.chrome.com/extensions/contentSecurityPolicy和https://developer.chrome.com/apps/contentSecurityPolicy提供了Chrome專用的文檔,但更側(cè)重于擴展/應(yīng)用開發(fā)。
https://msdn.microsoft.com/en-us/library/dn904195%28v=vs.85%29.aspx提供了針對Edge的部分文檔。
我能夠在Cloudflare中使用內(nèi)容安全策略(CSP)嗎?如何使用?
是的,您可以在Cloudflare背后的站點使用內(nèi)容安全策略。我們不會修改您的源站發(fā)送的Content-Security-Policy標(biāo)頭。
針對您自己/其他第三方內(nèi)容,無需對可接受來源進(jìn)行更改。使用Cloudflare不會影響或修改您用于包含內(nèi)容的URL,因此不會干擾客戶端將策略中指定的位置與用于包含資源的位置進(jìn)行匹配的能力。
將CSP標(biāo)頭與Rocket Loader結(jié)合使用的示例
script-src'self'ajax.cloudflare.com;
將CSP標(biāo)頭與Mirage結(jié)合使用的示例
script-src'self'ajax.cloudflare.com;
如果您使用Cloudflare Apps或Scrape Shield,則需要在策略中允許內(nèi)嵌腳本,因為當(dāng)您啟用這些功能時,我們會在您的域中包含腳本并添加一些內(nèi)嵌代碼。以下是您可以用于這些功能的CSP示例:
script-src'self''unsafe-inline'