在做chrome插件开发的时候,接触的这个概念,内容安全策略。通过白名单的方式,控制页面中哪些资源可以正常执行,哪些不可以,从而减少XSS的攻击。
语法
- 指令集合
- default-src:指定那些没有被精确指令定位的默认安全策略
- script-src:指定javascript的来源
- style-src:指定css的来源
- connect-src:指定XHR、WebSocket的来源
- img-src:指定图片和图标的来源
- media-src:指定媒体资源的来源
- font-src:指定字体的来源
- child-src:指定web worker、frame的来源
- 内容源
- host:主机地址
- *:运行任何内容
- ‘none’:不允许任何内容
- ‘self’:运行同源内容
- ‘unsafe-inline’:运行使用内联的script标签、style标签和事件绑定
- ‘unsafe-eval’:运行使用eval()方法
用法
HTML中通过meta标签设置
<meta http-equiv="Content-Security-Policy" content="script-src 'self'"></meta>在HTTP的响应头配置CSP
12Responsec HeaderContent-Security-Policy: script-src 'self'
CSP指定的都是白名单,如上面例子,非同源的javascript不会被加载及执行。