浏览器工作原理与实践
李兵
前盛大创新院高级研究员
56402 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 46 讲
浏览器工作原理与实践
15
15
1.0x
00:00/00:00
登录|注册

35 | 安全沙箱:页面和系统之间的隔离墙

Chrome中的站点隔离
安全沙箱对浏览器功能的影响
多进程架构和安全沙箱的解决方案
单进程浏览器的不足
Chrome中的站点隔离功能
用户交互
网络访问
持久存储
安全沙箱的保护单位是进程
安全沙箱对渲染进程和操作系统的隔离
安全沙箱的作用和原理
安全问题对浏览器体系架构的影响
现代浏览器的设计目标
恶意页面对浏览器和操作系统的攻击
单进程浏览器的漏洞问题
浏览器架构对操作系统安全的影响
单进程浏览器的稳定性问题
参考资料
思考时间
总结
站点隔离(Site Isolation)
安全沙箱如何影响各个模块功能
安全沙箱
安全视角下的多进程架构
浏览器漏洞和安全问题
浏览器架构的发展史
安全沙箱:页面和系统之间的隔离墙
参考文章

该思维导图由 AI 生成,仅供参考

前面三篇文章我们主要围绕同源策略介绍了 Web 页面安全的相关内容,那今天我们把视野向外延伸,来聊聊页面安全和操作系统安全之间的关系。
《01 | Chrome 架构:仅仅打开了 1 个页面,为什么有 4 个进程?》那篇文章中,我们分析了浏览器架构的发展史,在最开始的阶段,浏览器是单进程的,这意味着渲染过程、JavaScript 执行过程、网络加载过程、UI 绘制过程和页面显示过程等都是在同一个进程中执行的,这种结构虽然简单,但是也带来了很多问题。
从稳定性视角来看,单进程架构的浏览器是不稳定的,因为只要浏览器进程中的任意一个功能出现异常都有可能影响到整个浏览器,如页面卡死、浏览器崩溃等。不过浏览器的稳定性并不是本文讨论的重点,我们今天主要聊的是浏览器架构是如何影响到操作系统安全的
浏览器本身的漏洞是单进程浏览器的一个主要问题,如果浏览器被曝出存在漏洞,那么在这些漏洞没有被及时修复的情况下,黑客就有可能通过恶意的页面向浏览器中注入恶意程序,其中最常见的攻击方式是利用缓冲区溢出,不过需要注意这种类型的攻击和 XSS 注入的脚本是不一样的
XSS 攻击只是将恶意的 JavaScript 脚本注入到页面中,虽然能窃取一些 Cookie 相关的数据,但是 XSS 无法对操作系统进行攻击。
而通过浏览器漏洞进行的攻击是可以入侵到浏览器进程内部的,可以读取和修改浏览器进程内部的任意内容,还可以穿透浏览器,在用户的操作系统上悄悄地安装恶意软件、监听用户键盘输入信息以及读取用户硬盘上的文件内容。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

现代浏览器采用多进程架构,引入安全沙箱以提高系统安全性。安全沙箱限制渲染进程对操作系统资源的访问和修改,有效防止恶意站点获取控制权限,保护用户系统安全。此外,安全沙箱对浏览器内核和渲染进程功能产生影响,包括持久存储和网络访问等方面。站点隔离功能将同一站点中相互关联的页面放到同一个渲染进程中执行,以防止恶意iframe攻击其他站点。总的来说,安全沙箱在现代浏览器中扮演着关键的角色,为用户提供了更安全的网络浏览环境。安全沙箱能够防止XSS或者CSRF一类的攻击,因为它限制了渲染进程对操作系统资源的访问和修改,有效防止恶意站点获取控制权限,从而保护用户系统安全。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《浏览器工作原理与实践》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(34)

  • 最新
  • 精选
  • 安全沙箱是不能防止 XSS 或者 CSRF 一类的攻击, 安全沙箱的目的是隔离渲染进程和操作系统,让渲染进行没有访问操作系统的权利 XSS 或者 CSRF 主要是利用网络资源获取用户的信息,这和操作系统没有关系的

    作者回复: 没问题

    2019-10-24
    74
  • 3Spiders
    每周都跟着老师一起学习,终于坚持到最后了。千里之行始于足下,课程结束后,我们再向老师提问?

    作者回复: 日拱一卒 不期速成 我随时奉陪

    2019-10-24
    3
    26
  • 刹那
    老师我有个疑问,既然渲染进程运行在沙箱中,涉及到系统操作的都通过ipc向浏览器进程发送操作请求,那么,这个阶段会不会也存在安全漏洞?就是说,渲染进程有没有可能发送一个能攻破浏览器进程的消息,之后可以通过控制浏览器进程入侵操作系统?

    作者回复: 如果ipc有漏洞也是可能的,不过要通过IPC发起攻击、那难度就太大了,因为IPC的消息要合规,不合规的消息也会被过滤掉的。

    2019-10-26
    22
  • 空山鸟语
    老师讲的全是干货,目前正在反复听呢! 表示还没听够

    作者回复: 感谢肯定,课程内容的确是非常精心规划的

    2019-10-24
    8
  • Snow同學
    请问老师,这个问题我问了好几遍了,希望得到老师的回复, 在开发时 1.空页面加载一个URL,如何知道页面已经显示在了屏幕上(从用户真实的视觉上看到页面),在代码层面可以通过检测什么状态知道嘛? 2.在页面已经显示到屏幕后完成,通过点击一个按钮,执行向document添加一些元素(可以是div,div里也可以有更多其他标签和内容),如何知道这些元素什么时候真正显示在屏幕上(从用户真实的视觉上看到页面),在代码层面可以通过检测什么状态知道嘛? 是不是无法通过代码检测呀?

    作者回复: 不好意思,久等了。 你可以关注下 PerformancePaintTiming,不过这个功能个大浏览器还在开发中,Chrome也可以使用,但是不保证准确度。 另外要使用该接口,还需要了解几个概念如First paint、First contentful paint。 这是MDN上的一段代码,你可以测试下: function showPaintTimings() { if (window.performance) { let performance = window.performance; let performanceEntries = performance.getEntriesByType('paint'); performanceEntries.forEach( (performanceEntry, i, entries) => { console.log("The time to " + performanceEntry.name + " was " + performanceEntry.startTime + " milliseconds."); }); } else { console.log('Performance timing isn\'t supported.'); } } 给你两个参考地址 MDN: https://developer.mozilla.org/zh-CN/docs/Web/API/PerformancePaintTiming W3C: https://www.w3.org/TR/paint-timing/

    2019-10-25
    2
    7
  • mfist
    不能攻击,xss csrf 是攻击的网页服务器的漏洞。跟浏览器本身没有关系。不过应该能使攻击者绕过前端的编码检验之类,如果后端没有对应的安全检验就惨了。

    作者回复: 没问题

    2019-10-24
    5
  • 李懂
    老师多给自己留点坑,多讲讲,还想再学学! 希望能讲讲,全局上下文不是只存在一个么,为啥在执行时js,每次都先创建全局上下文,进栈,是不是哪里理解的有问题?

    作者回复: 坑不少了。 我想想怎么填

    2019-10-24
    2
    3
  • 这就完了吗?意犹未尽,每一讲都讲的挺好。每个2,4,6早上到公司都会第一时间check有没有更新,期待后面的问答加餐环节,哈哈

    作者回复: 感谢

    2019-10-24
    3
  • jyzhang
    持久存储 。这里有点疑惑,沙箱里渲染进程将读写cookie和缓存文件的需求用IPC发给浏览器内核处理,内核再把结果用ipc返回,为什么这样就会比较安全?

    作者回复: 因为不让渲染进程有读取系统文件的能力,这样即使黑客通过页面拿到渲染进程的控制权,他也没能力去读写系统的文件!

    2019-12-19
    2
    2
  • 李小白
    老师,我想请问一下,你说渲染进程内部是无法直接操作窗口句柄的,这也是为了限制渲染进程监控到用户的输入事件,这种情况我也可以通过JS来获取监控到用户的输入事件啊,通过渲染进程,渲染进程是可以通过IPC从浏览器内核监控到用户输入事件的啊,和我们正常用js就是可以获取用户的输入事件一样。希望老师帮忙解答一下

    作者回复: 通过IPC传给渲染进程的是浏览器默许的,这个没有问题。 安全沙箱主要保护的是恶意程序通过网络攻破渲染进程,然后在渲染进程内,获取系统窗口的内容,比如qq登陆窗口这种。

    2019-10-31
    2
收起评论
显示
设置
留言
34
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部