浏览器沙盒是什么

简介:

是什么

沙盒(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

目录
相关文章
|
6月前
|
人工智能 数据可视化 测试技术
AI时代的接口调试与文档生成:Apipost 与 Apifox 的表现对比
在AI技术驱动的数字化时代,软件开发日益复杂,团队协作与效率至关重要。接口调试与文档生成贯穿开发全流程,影响项目进度与质量。Apipost与Apifox作为主流工具,功能差异显著。本文从WebSocket调试、Socket.IO协议支持、GraphQL调试及AI能力等维度进行深度对比,分析两者在接口调试与文档生成方面的优劣,为开发团队选型提供参考依据,助力提升开发效率与协作水平。
387 2
AI时代的接口调试与文档生成:Apipost 与 Apifox 的表现对比
|
SQL 数据可视化 大数据
从数据小白到大数据达人:一步步成为数据分析专家
从数据小白到大数据达人:一步步成为数据分析专家
648 92
|
11月前
|
移动开发 数据安全/隐私保护 UED
免费生成产品说明书二维码:生成工具推荐
本文详细介绍了产品说明书二维码的优势、制作工具和教程,并解答了常见问题。了解如何利用二维码提升产品用户体验,降低成本
Flutter-发现局域网中的设备
Flutter-发现局域网中的设备
379 0
|
机器学习/深度学习 数据可视化 算法框架/工具
使用Python实现深度学习模型:视频处理与动作识别
【7月更文挑战第16天】 使用Python实现深度学习模型:视频处理与动作识别
884 17
|
XML 存储 数据格式
RAG效果优化:高质量文档解析详解
本文关于如何将非结构化数据(如PDF和Word文档)转换为结构化数据,以便于RAG(Retrieval-Augmented Generation)系统使用。
1322 11
|
JSON 安全 前端开发
跨域详解及Spring Boot 3中的跨域解决方案
本文介绍了Web开发中的跨域问题,包括概念、原因、影响以及在Spring Boot 3中的解决方案。跨域是由浏览器的同源策略限制引起的,阻碍了不同源之间的数据传输。解决方法包括CORS、JSONP和代理服务器。在Spring Boot 3中,可以通过配置CorsFilter来允许跨域请求,实现前后端分离项目的正常运行。
1185 3
 跨域详解及Spring Boot 3中的跨域解决方案
|
传感器 监控 安全
地铁线路管理系统的设计与实现_kaic
地铁线路管理系统的设计与实现_kaic
|
存储 JavaScript easyexcel
easyexcel 2.2.6 新版本以列表的形式读取 Excel
easyexcel 2.2.6 新版本以列表的形式读取 Excel
579 0
|
SQL 安全 数据挖掘
隐私计算实训营第7讲:隐语SCQL的架构详细拆解丨隐私计算实训营 第1期
SCQL是安全协作查询语言,让不信任的多方能在保护隐私的前提下进行联合数据分析。它假设参与者半诚实,支持多方(N>=2)合作,且具备SQL语法支持和性能优化。SCQL提供类似SQL的用户界面,通过CCL机制允许数据所有者控制数据使用权限。系统基于SPU的MPC框架运行,适用于多个应用场景。
532 0