CSP 全称为 Content Security Policy,即内容安全策略。主要以白名单的形式配置可信任的内容来源,在网页中,能够使白名单中的内容正常执行(包含 JS,CSS,Image 等等),而非白名单的内容无法正常执行,从而减少跨站脚本攻击(XSS),当然,也能够减少运营商劫持的内容注入攻击。
使用方式一:
Meta标签
在 HTML 的 Head 中添加如下 Meta 标签,将在符合 CSP 标准的浏览器中使非同源的 script 不被加载执行。不支持 CSP 的浏览器将自动会忽略 CSP 的信息,不会有什么影响。
<meta http-equiv="Content-Security-Policy" content="default-src 'unsafe-inline' 'unsafe-eval' 'self' *.abc.com *.bcd.com;img-src 'self' data:;font-src 'self' data:;report-uri /error/csp.php" />
使用方式二:
Http头部增加配置
Content-Security-Policy:
default-src 'unsafe-inline' 'unsafe-eval' 'self' *.abc.com *.bcd.com;img-src 'self' data:;font-src 'self' data:;report-uri /error/csp.php
说明:白名单中,'self' 代表本域,其他多个域名中间要有空格隔开,其中 /error/csp.php,为接收劫持拦截信息的地址,report-uri /error/csp.php 可以去掉,即不接收拦截数据
更多参数配置信息请参考:CSP策略指令