Content Security Policy (网页安全策略或内容安全策略,简称 CSP),主要用于检测并削弱某些特定类型的攻击,如跨站脚本(xss)、数据注入攻击等,相当于是让浏览器自动禁止外部注入恶意脚本
CSP的实质就是白名单制度,开发者明确告诉客户端,哪些外部资源可以加载和执行,它的实现和执行全部由浏览器完成,开发者只需要提供配置
两种启用CSP方式
- ①通过HTTP头部信息的Content-Security-Policy字段添加指定策略
Content-Security-Policy: script-src 'self'; boject-src 'none'; style-src cdn.example.org third-party.org; child-src https:
- ②通过网页的标签
<meta http-equiv='Content-Security-Policy' content="script-src 'self'; boject-src 'none'; style-src cdn.example.org third-party.org; child-src https:">
- 以上代码的配置信息:
- 脚本:只信任当前域名
- 标签,不信任任何URL,即不加载任何资源
- 样式表:只信任cdn.example.org third-party.org
- 框架(frame):必须使用HTTPS协议加载
- 其他资源:没有限制
- 资源限制选项
- script-src: 外部脚本
- style-src: 样式表
- img-src: 图片
- media-src: 媒体文件
- font-src: 字体文件
- object-src: 插件,如Flash
- child-src: 框架
- frame-ancestors: 嵌入的外部资源,如:frame、iframe
- content-src: HTTP连接(通过XHR、WebSockets)
- worker-src: worker脚本
- manifest-src: manifest文件
- default-src 选项
- 用来限制各个选项的默认值
Content-Security-Policy: default-src 'self'
- 用来限制各个选项的默认值
- 以上代码限制所有资源只能从当前域名加载
- ①通过HTTP头部信息的Content-Security-Policy字段添加指定策略
参考
上一篇
一份参考用的axios封装
2020-11-19
下一篇
Github搜索技巧
2020-11-12