Blog: https://micleming.github.io/
内容安全策略(CSP)相当于定义了一个白名单,允许哪些资源能加载和执行,并设置加载的规则。而且对于不合法的资源可以进行上报。
CSP
增强了网页的安全性,资源的来源限定在了可靠的来源,减少了了诸如XSS
之类的安全风险。CSP
在一开始便被设计为能向后兼容,即使在不支持CSP
的用户代理(比如浏览器)上也不会出现问题。
浏览器的CSP
功能可以根据如下两种方式进行开启:
http
头部的Content-Security-Policy
属性。html
里的<meta>
元素来开启。推荐的比较灵活的方式就是利用http
的头部进行配置。
以nodejs
为例,可以通过以下方式设置CSP
const csp = [
"default-src 'self'",
'img-src *',
'media-src media.com',
'script-src script.example.com'
].join(';')
res.setHeader('Content-Security-Policy', csp)
那么在接收到这个请求的浏览器中,如果该浏览器支持CSP
, 那么它将使用如下策略:
media.com
域进行加载script.example.com
进行加载通过这种限制资源的来源,来保证网站的安全,减少网络攻击的发生。