其他分享
首页 > 其他分享> > web安全 - CSP

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