Content Security Policy(CSP),内容(网页)安全策略,为了缓解潜在的跨站脚本问题(XSS攻击),浏览器的扩展程序系统引入了内容安全策略(CSP)这个概念。具体内容可以参见《Content Security Policy 入门教程》
在先前的XSS攻击介绍中,主要都是利用函数过滤/转义输入中的特殊字符,标签,文本来应对攻击。CSP则是另外一种常用的应对XSS攻击的策略。
CSP 的实质就是白名单制度,开发者明确告诉客户端,哪些外部资源可以加载和执行,等同于提供白名单。它的实现和执行全部由浏览器完成,开发者只需提供配置。
两种方法可以启用 CSP。
- 一种是通过 HTTP 响应头信息的Content-Security-Policy字段。
- 一种是通过网页的标签。
<meta http-equiv="Content-Security-Policy" content="script-src 'self'; object-src 'none'; style-src cdn.example.org third-party.org; child-src https:">
关于HTTP中CSP说明参见 https://cloud.tencent.com/developer/section/1189835
以上例子中的说明如下:
- script-src,脚本:只信任当前域名
- object-src:不信任任何URL,即不加载任何资源
- style-src,样式表:只信任cdn.example.org和third-party.org