浏览器沙盒是什么

简介:

是什么

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

目录
相关文章
|
Kubernetes 容器
在Kubernetes(k8s)中部署Higress时,查看Wasm插件日志的方法如下
在Kubernetes(k8s)中部署Higress时,查看Wasm插件日志的方法如下
796 1
|
设计模式 Java 编译器
面向对象编程中的继承与多态:深入理解父类引用指向子类实例
面向对象编程中的继承与多态:深入理解父类引用指向子类实例
Apifox测试导出excel接口
Apifox测试导出excel接口
2268 0
|
7月前
|
人工智能 Kubernetes 机器人
一键部署 OpenClaw:基于 ACS Agent Sandbox 构建企业级 AI Agent 应用
本文将详细介绍如何基于 ACS Agent Sandbox 一键部署 OpenClaw,实现按需休眠与秒级唤醒,并介绍其与钉钉等应用的集成方法。
1957 7
|
9月前
|
人工智能 关系型数据库 分布式数据库
|
10月前
|
人工智能 JSON 机器人
10分钟!用飞书卡片+n8n零代码搞定自动化
手把手教你用飞书卡片+n8n搭建零代码自动化应用。
|
人工智能 数据可视化 测试技术
AI时代的接口调试与文档生成:Apipost 与 Apifox 的表现对比
在AI技术驱动的数字化时代,软件开发日益复杂,团队协作与效率至关重要。接口调试与文档生成贯穿开发全流程,影响项目进度与质量。Apipost与Apifox作为主流工具,功能差异显著。本文从WebSocket调试、Socket.IO协议支持、GraphQL调试及AI能力等维度进行深度对比,分析两者在接口调试与文档生成方面的优劣,为开发团队选型提供参考依据,助力提升开发效率与协作水平。
660 2
AI时代的接口调试与文档生成:Apipost 与 Apifox 的表现对比
Flutter-发现局域网中的设备
Flutter-发现局域网中的设备
559 0
|
存储 JavaScript easyexcel
easyexcel 2.2.6 新版本以列表的形式读取 Excel
easyexcel 2.2.6 新版本以列表的形式读取 Excel
730 0
|
Web App开发 移动开发 JavaScript
HTML 音频(Audio)详解
HTML5通过`<audio>`元素为网页音频播放提供了丰富支持。本文将介绍其基本用法、属性(如`controls`、`autoplay`)、事件监听、格式兼容性(MP3、OGG、WAV、AAC),并提供JavaScript控制示例。此外,还将讨论优化技巧,如使用CDN、懒加载及提升用户体验的方法。