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只来自本地

原文发布于微信公众号 - 性能与架构(yogoup)

原文发表时间:2015-12-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏静下来

解决ssh出现Host key verification failed错误的方法

image.png ssh登陆Linux服务器的时候,如果出现了Host key verification failed的错误,需要清空下本地ip密码记录。 出...

37770
来自专栏老马寒门IT

Node入门教程(4)第三章:第一个 Nodejs 程序

第一个 Nodejs 程序 本教程仅适合您已经有一定的JS编程的基础或者是后端语言开发的基础。 如果您是零基础,建议您先学一下老马的前端免费视频教程 第一步:创...

32060
来自专栏GIS讲堂

Arcgis For Android之离线地图实现的几种方式

为什么要用,我想离线地图的好处是不言而喻的,所以很多人做系统的时候都会考虑用离线地图。在此,我给大家介绍几种Arcgis For Android下加载离线地图的...

27930
来自专栏Bug生活2048

Spring Boot学习笔记(一)环境搭建

http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.h...

11330
来自专栏java一日一条

一篇文章了解RPC框架原理

RPC(Remote Procedure Call)–远程过程调用,通过网络通信调用不同的服务,共同支撑一个软件系统,微服务实现的基石技术。使用RPC可以解耦系...

23140
来自专栏林德熙的博客

win10 uwp 无法附加到CoreCLR 查询临时变量:

本文说的是在vs调试无法附加到CoreCLR。拒绝访问。已经如何去解决,可能带有一定的主观性和局限性,说的东西可能不对或者不符合每个人的预期。如果觉得我有讲的不...

7710
来自专栏飞雪无情的博客

Go语言实战笔记(十二)| Go goroutine

一般的程序,如果没有特别的要求的话,是顺序执行的,这样的程序也容易编写维护。但是随着科技的发展、业务的演进,我们不得不变写可以并行的程序,因为这样有很多好处。

12930
来自专栏小巫技术博客

Android入门教程AS重制-A003开发环境搭建

上一节课给大家粗略的介绍了在实际开发当中会使用到的一些开发工具,本节课正式给大家介绍如何在我们的PC来大家开发环境,主要有两个步骤:

10120
来自专栏测试开发架构之路

Keepalived+Nginx高可用架构配置

19420
来自专栏云计算教程系列

如何在CentOS 7上使用Fail2Ban保护SSH

虽然通过SSH连接到服务器可能非常安全,但SSH守护程序本身是一种必须暴露给Internet才能正常运行的服务。这带来了一些固有的风险,并为潜在攻击者提供了一个...

20600

扫码关注云+社区

领取腾讯云代金券