35 | 安全沙箱:页面和系统之间的隔离墙
35 | 安全沙箱:页面和系统之间的隔离墙
讲述:李兵
时长14:51大小11.88M
安全视角下的多进程架构
安全沙箱
安全沙箱如何影响各个模块功能
1. 持久存储
2. 网络访问
3. 用户交互
站点隔离(Site Isolation)
总结
思考时间
参考资料
赞 20
提建议
精选留言(32)
- 一步2019-10-24安全沙箱是不能防止 XSS 或者 CSRF 一类的攻击, 安全沙箱的目的是隔离渲染进程和操作系统,让渲染进行没有访问操作系统的权利 XSS 或者 CSRF 主要是利用网络资源获取用户的信息,这和操作系统没有关系的
作者回复: 没问题
68 - 成楠Peter2019-10-24每周都跟着老师一起学习,终于坚持到最后了。千里之行始于足下,课程结束后,我们再向老师提问?
作者回复: 日拱一卒 不期速成 我随时奉陪
共 3 条评论24 - 刹那2019-10-26老师我有个疑问,既然渲染进程运行在沙箱中,涉及到系统操作的都通过ipc向浏览器进程发送操作请求,那么,这个阶段会不会也存在安全漏洞?就是说,渲染进程有没有可能发送一个能攻破浏览器进程的消息,之后可以通过控制浏览器进程入侵操作系统?
作者回复: 如果ipc有漏洞也是可能的,不过要通过IPC发起攻击、那难度就太大了,因为IPC的消息要合规,不合规的消息也会被过滤掉的。
22 - Snow同學2019-10-25请问老师,这个问题我问了好几遍了,希望得到老师的回复, 在开发时 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/
共 2 条评论6 - 空山鸟语2019-10-24老师讲的全是干货,目前正在反复听呢! 表示还没听够
作者回复: 感谢肯定,课程内容的确是非常精心规划的
6 - mfist2019-10-24不能攻击,xss csrf 是攻击的网页服务器的漏洞。跟浏览器本身没有关系。不过应该能使攻击者绕过前端的编码检验之类,如果后端没有对应的安全检验就惨了。
作者回复: 没问题
5 - 李懂2019-10-24老师多给自己留点坑,多讲讲,还想再学学! 希望能讲讲,全局上下文不是只存在一个么,为啥在执行时js,每次都先创建全局上下文,进栈,是不是哪里理解的有问题?
作者回复: 坑不少了。 我想想怎么填
共 2 条评论3 - 李小白2019-10-31老师,我想请问一下,你说渲染进程内部是无法直接操作窗口句柄的,这也是为了限制渲染进程监控到用户的输入事件,这种情况我也可以通过JS来获取监控到用户的输入事件啊,通过渲染进程,渲染进程是可以通过IPC从浏览器内核监控到用户输入事件的啊,和我们正常用js就是可以获取用户的输入事件一样。希望老师帮忙解答一下
作者回复: 通过IPC传给渲染进程的是浏览器默许的,这个没有问题。 安全沙箱主要保护的是恶意程序通过网络攻破渲染进程,然后在渲染进程内,获取系统窗口的内容,比如qq登陆窗口这种。
2 - man2019-10-26很精彩呀,像看了一部好莱坞大片的感觉。。。共 2 条评论2
- 淡2019-10-24这就完了吗?意犹未尽,每一讲都讲的挺好。每个2,4,6早上到公司都会第一时间check有没有更新,期待后面的问答加餐环节,哈哈
作者回复: 感谢
2 - james2020-06-11安全沙箱不能防止XSS和CSRF攻击 因为XSS攻击是黑客在页面中注入不合法脚本,导致攻击用户浏览器的问题,是属于渲染进程里面的 CSRF攻击是黑客利用用户的登录状态,是属于利用网络资源获取用户信息,然后黑客通过第三方站点来攻击的目的,这个也是属于渲染进程中的 因此跟安全沙箱没有关系展开1
- jyzhang2019-12-19持久存储 。这里有点疑惑,沙箱里渲染进程将读写cookie和缓存文件的需求用IPC发给浏览器内核处理,内核再把结果用ipc返回,为什么这样就会比较安全?
作者回复: 因为不让渲染进程有读取系统文件的能力,这样即使黑客通过页面拿到渲染进程的控制权,他也没能力去读写系统的文件!
共 2 条评论1 - 滇西之王2019-10-24不能防止,xss攻击和cspf不是针对操作系统的攻击,xss攻击就是执行javascript脚步,他的攻击是在渲染进程内,cspf是发送请求获取用户敏感信息,利用到网络进程
作者回复: 没问题
1 - 亲爱的偏执狂2019-10-24好快啊,感觉没多久就剩最后一讲就结束了。
作者回复: 我可不觉得快,都是一天当两天使哈
1 - 罗武钢2022-09-17 来自广东很棒
- Geek_bing2021-08-18怎么说,意犹未尽啊!课程干货很多导致自己不知道的感觉也很多了~
- 张宗伟2021-06-17Chrome uses a specific definition of "site" that includes just the scheme and registered domain. Thus, https://google.co.uk would be a site, and subdomains like https://maps.google.co.uk would stay in the same process.
- 张宗伟2021-06-17老师对于这句话:所谓站点隔离是指 Chrome 将同一站点(包含了相同根域名和相同协议的地址)中相互关联的页面放到同一个渲染进程中执行。 其中 相同根域名 是不是表达的意思不对呀,那如果这样可认为 同一站点 的url可太多了。
- 张宗伟2021-06-11安全沙箱的主要作用是 防止通过浏览器直接操作系统的资源,进而造成系统级的安全威胁。 而 XSS、CSRF 主要是发生在渲染进程(页面)与服务器,这些操作都是符合 安全沙箱 的规则的,所以并不能防护。它们所关注的点不一样。
- William Ning2021-03-03Js执行实在渲染进程主线程中?