内容安全策略(Content Security Policy)是什么?
内容安全策略(Content Security Policy)简称CSP
是由W3C小组定义的一项规范,其主要作用是提供一个额外的安全层,用于检测并削弱某些特定类型的攻击,包括跨站脚本 (XSS) 和数据注入攻击等.
目前内容安全策略(Content Security Policy)的规范一共有三个版本:
1.Content Security Policy Level 1
2.Content Security Policy Level 2
3.Content Security Policy Level 3
现在主要使用的是第二个版本,第三个版本目前还在草案当中
CSP的作用
CSP
被设计出来的目的就是为了效防范内容注入攻击,如XSS攻击等.
它通过让开发者对自己WEB应用声明一个外部资源加载的白名单,使得客户端在运行WEB应用时对外部资源的加载做出筛选和识别,只加载被允许的网站资源.对于不被允许的网站资源不予加载和执行.同时,还可以将WEB应用中出现的不被允许的资源链接和详情报告给我们指定的网址.如此,大大增强了WEB应用的安全性.使得攻击者即使发现了漏洞,也没法注入脚本,除非还控制了一台列入了白名单的服务器.
使用CSP
CSP的选择
根据W3C的设计,CSP
分为两种模式:
- 一种是
Content-Security-Policy
.
使用这种模式,将会直接阻止非法的外部资源加载,同时也可以选择是否配置将非法资源加载的链接和行为报告给我们指定的网址
- 另一种是
Content-Security-Policy-Report-Only
使用这种模式时,客户端在遇到非法的外部资源加载时并不会阻止,而是正常加载.但是会将次加载行为和链接报告给我我指定的网址.所以使用此模式时,必须要使用report-uri
策略配置报告非法资源加载情况的网址.
以上是CSP
策略的两种模式,在实际使用中,我们可以根据自己的情况任意选择其中一种模式.