Content Security Policy 入門教程
跨域腳本攻擊 XSS 是最常見、危害最大(dà)的網頁安全漏洞。
爲了防止它們,要采取很多編程措施,非常麻煩。很多人提出,能不能根本上解決問題,浏覽器自動禁止外(wài)部注入惡意腳本?這就是"網頁安全政策"(Content Security Policy,縮寫 CSP)的來曆。本文詳細介紹如何使用 CSP 防止 XSS 攻擊。
一(yī)、簡介
CSP 的實質就是白(bái)名單制度,開(kāi)發者明确告訴客戶端,哪些外(wài)部資(zī)源可以加載和執行,等同于提供白(bái)名單。它的實現和執行全部由浏覽器完成,開(kāi)發者隻需提供配置。CSP 大(dà)大(dà)增強了網頁的安全性。攻擊者即使發現了漏洞,也沒法注入腳本,除非還控制了一(yī)台列入了白(bái)名單的可信主機。
兩種方法可以啓用 CSP。一(yī)種是通過 HTTP 頭信息的Content-Security-Policy的字段。
Content-Security-Policy: script-src 'self'; object-src 'none';
style-src cdn.example.org third-party.org; child-src https:
另一(yī)種是通過網頁的 标簽。
<meta http-equiv="Content-Security-Policy" content="script-src 'self'; object-src 'none'; style-src cdn.example.org third-party.org; child-src https:">
上面代碼中(zhōng),CSP 做了如下(xià)配置。
- 腳本:隻信任當前域名