web安全 - CSP
作者:互联网
CSP 全名 内容安全策略(Content Security Policy)
主要用来防御:XSS
CSP 基本思路
定义外部内容引用的白名单
例如
页面中有个按钮,执行的动作源于 http://a.com/x.js,但如果被***的话,有可能执行的是 http://b.com/x.js
浏览器可以下载并执行任意js请求,而不论其来源
CSP 的作用就是创建一个可信来源的白名单,使得浏览器只执行来自这些来源的资源,而不是盲目信任所有内容,即使***者可以找到漏洞来注入脚本,但是因为来源不包含在白名单里,因此将不会被执行
例如把 http://a.com 放入白名单,那么浏览器便不会执行 http://b.com/x.js
示例
我们相信 http://a.com 提供有效的代码,以及我们自己,所以可以定义一个策略,允许浏览器只会执行下面两个来源之一的脚本
Content-Security-Policy: script-src 'self' http://a.com
非常简单,使用 Content-Security-Policy 头来设定,script-src 指令指定了可信的脚本来源
指令说明
default-src
默认策略,当其他各个特殊指令源没有赋值时,就按照该指令值,优先级最低
script-src
脚本来源,当default-src或者script-src二者有一个指定了值,那么inline script 和 eval()就被禁止,除非分别使用'unsafe-inline' and 'unsafe-eval'来放行
content-src
限制连接的类型(例如XMLHttpRequest、WebSockets和EventSource)
font-src
控制网络字体的来源
frame-src
列出了可以嵌入的frame的来源(<frame> 和<iframe>元素)
img-src
定义了可加载图像的来源
media-src
限制视频和音频的来源(<audio> 和 <video>元素)
object-src
限制Flash和其他嵌入对象的来源
style-src
类似于Script-src,只是作用于css文件
案例
Content-Security-Policy:
default-src 'none';
script-src http://cdn.my.com;
style-src http://cdn.my.com;
img-src http://cdn.my.com;
connect-src http://api.my.com;
frame-src 'self'
这个例子指定了默认策略:阻止所有内容
脚本、样式、图片 都只信任 http://cdn.my.com
数据连接请求只允许 http://api.my.com
引用的frame只来自本地
标签:web,http,src,my,script,来源,安全,com,CSP 来源: https://blog.51cto.com/u_15127579/2727114