前端安全 CSP
什么是 CSP?
CSP
指的是内容安全策略,它的本质是建立一个白名单,告诉浏览器哪些外部资源可以加载和执行。我们只需要配置规则,如何拦截由浏览器自己来实现。
如何开启 CSP?
通常有两种方式来开启 CSP
,一种是设置 HTTP
首部中的 Content-Security-Policy
,一种是设置 meta
标签的方式:<meta http-equiv="Content-Security-Policy">
CSP 的用途
CSP
只允许加载指定的脚本及样式,最大限度地防止 XSS
攻击,是解决 XSS
的最优解。CSP
的设置根据加载页面时 http
的响应头 Content Security Policy
在服务器端控制。
- 外部脚本可以根据指定域名来限制:
Content-Security-Policy:script-src 'self'
,self
代表只加载当前域名。 - 如果网站必须加载内联脚本
(inline script)
,则可以提供一个nonce
才能执行脚本,攻击者则无法注入脚本进行攻击。Content-Security-Policy:script-src 'nonce-xxxxxxx'
。