Skip to content
导航

CSP

CSP(Content-Security-Policy,内容安全策略)通过指定有效域(即浏览器认可的可执行脚本的有效来源)使服务器管理者有能力减少或消除 XSS 攻击所依赖的载体。

兼容CSP的浏览器将会仅加载从白名单域获取到的资源,忽略其他资源,包括页面内联脚本、样式和 HTML 的事件处理属性。

使用

headers语法

http
Content-Security-Policy: policy

示例1:所有内容均来自站点的同一个源(不包括其子域名)

http
Content-Security-Policy: default-src 'self'

示例2:允许内容来自信任的域名及其子域名(域名不必须与 CSP 设置所在的域名相同)

http
Content-Security-Policy: default-src 'self' *.trusted.com

示例3:分别限制图片、脚本

http
Content-Security-Policy: default-src 'self'; img-src *; script-src userscripts.example.com

报告

默认情况下,违规报告并不会发送。为启用发送违规报告,需要指定report-uri,并提供至少一个 URI 地址去递交报告:

http
Content-Security-Policy: default-src 'self'; report-uri /_/csp-reports

CSP 可以部署为仅报告(report-only)模式,policy语法同Content-Security-Policy

http
Content-Security-Policy-Report-Only: policy

在此模式下,CSP 策略不是强制性的,但是任何违规行为将会报告给一个指定的 URI 地址。

参考资料