浏览器沙盒是什么

简介:

是什么

沙盒(sandbox),另称沙箱,是一种按照安全策略限制程序行为的执行环境。“沙盒”技术的实践运用流程是:让疑似病毒文件的可疑行为在虚拟的“沙盒”里充分运行,“沙盒”会记下它的每一个动作;当疑似病毒充分暴露了其病毒属性后,“沙盒”就会执行“回滚”机制:将病毒的痕迹和动作抹去,恢复系统到正常状态。

PS:sandbox并不是sandboxie,sandboxie是一种专业沙盒软件。

安全策略

1. 不能运行任何本地的的可执行程序。

2. 不能从本地计算机文件系统中读取任何信息,也不能往本地计算机文件系统中写入任何信息。

3. 不能查看除Java版本信息和少数几个无害的操作系统详细信息外的任何有关本地计算机的信息。特别是,在沙箱中的代码不能查看用户名、E-mail地址等信息。

4. 远程加载的程序不能与除下载程序所在的服务器之外的任何主机通信,这个服务器被称为源主机(originating host)。这条规则通常称为“远程代码只能与家人通话”这条规则将会确保用户不会被代码探查到内部网络资源(在Java SE 6 中,Java Web Start 应用程序可以与其他网络连接,但必须得到用户的同意)。

简单说就是不能写,不能读,不给看。

针对什么

以Chrome为例,Chrome采用的是多进程结构,进程类型主要有以下几种:

1. 主进程:负责所有资源管理、系统交互,前者包括bookmark、cookie、history管理等;后者包括屏幕绘制、处理keyboard/mouse输入、internet连接等。(不在Chrome的sandbox中运行。)

2. web渲染进程:负责html解析、javascript执行、image decoding、页面布局等所有和网页相关的任务。所有的此类进程都强制在sandbox中运行。和用户、系统的联系不直接进行(也无法直接进行),而是通过IPC(进程间通信)向主进程发送请求。

3. plugin进程:每个plugin对应一个此类进程,动态地创建、销毁。目前的plugin大都需要直接操作系统资源,比如flash plugin会打开摄像头、下载临时文件到硬盘等,所以plugin进程不在sandbox中运行。

4. extension进程:一种特殊的web渲染进程。

PS:extension本身可以算是网页,安装了后是运行在沙盒里面的,但是点击扩展按钮后可能会启动额外的进程,这时候所进行的操作就不一定在沙箱内了。

总结起来就是只有和网页相关的任务(渲染进程)运行在Chrome的沙盒中。Chrome的沙盒是依赖操作系统本身提供的机制实现,根据操作系统本身提供了相关的API,限制进程的权限,比如让进程无法访问任何文件、无法获得用户输入、无法hook其他进程、无法创建子进程等,Chrome的sandbox最大化的利用了这些限制。

限制:

1. 它主要防护恶意代码对系统的破坏,对其它类型的安全问题办法不多。比如:恶意代码可以从主进程获得所有的cookie,并通过主进程发送出去。

2. 如果操作系统API本身存在漏洞而被攻破,Chrome的sandbox也自然被穿。

3. plugin进程不受sandbox保护,所以利用plugin漏洞的恶意代码在Chrome上都能发作。

PS:该文只是做一个笔记,只学习,如果有误,请指正。


转载:http://www.cnblogs.com/lovesong/p/5087423.html

目录
相关文章
|
4月前
|
人工智能 关系型数据库 分布式数据库
|
移动开发 JavaScript 前端开发
精通服务器推送事件(SSE)与 Python 和 Go 实现实时数据流 🚀
服务器推送事件(SSE)是HTML5规范的一部分,允许服务器通过HTTP向客户端实时推送更新。相比WebSocket,SSE更轻量、简单,适合单向通信场景,如实时股票更新或聊天消息。它基于HTTP协议,使用`EventSource` API实现客户端监听,支持自动重连和事件追踪。虽然存在单向通信与连接数限制,但其高效性使其成为许多轻量级实时应用的理想选择。文中提供了Python和Go语言的服务器实现示例,以及HTML/JavaScript的客户端代码,帮助开发者快速集成SSE功能,提升用户体验。
|
存储 消息中间件 JSON
DDD基础教程:一文带你读懂DDD分层架构
DDD基础教程:一文带你读懂DDD分层架构
|
9月前
|
人工智能 数据可视化 测试技术
AI时代的接口调试与文档生成:Apipost 与 Apifox 的表现对比
在AI技术驱动的数字化时代,软件开发日益复杂,团队协作与效率至关重要。接口调试与文档生成贯穿开发全流程,影响项目进度与质量。Apipost与Apifox作为主流工具,功能差异显著。本文从WebSocket调试、Socket.IO协议支持、GraphQL调试及AI能力等维度进行深度对比,分析两者在接口调试与文档生成方面的优劣,为开发团队选型提供参考依据,助力提升开发效率与协作水平。
466 2
AI时代的接口调试与文档生成:Apipost 与 Apifox 的表现对比
Flutter-发现局域网中的设备
Flutter-发现局域网中的设备
432 0
|
JSON 安全 前端开发
跨域详解及Spring Boot 3中的跨域解决方案
本文介绍了Web开发中的跨域问题,包括概念、原因、影响以及在Spring Boot 3中的解决方案。跨域是由浏览器的同源策略限制引起的,阻碍了不同源之间的数据传输。解决方法包括CORS、JSONP和代理服务器。在Spring Boot 3中,可以通过配置CorsFilter来允许跨域请求,实现前后端分离项目的正常运行。
1292 3
 跨域详解及Spring Boot 3中的跨域解决方案
|
存储 JavaScript easyexcel
easyexcel 2.2.6 新版本以列表的形式读取 Excel
easyexcel 2.2.6 新版本以列表的形式读取 Excel
630 0
|
设计模式 Java 关系型数据库
面试官:说说你的项目亮点?
面试官:说说你的项目亮点?
677 0
面试官:说说你的项目亮点?
|
传感器 监控 安全
地铁线路管理系统的设计与实现_kaic
地铁线路管理系统的设计与实现_kaic

热门文章

最新文章