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 地址。