What Sandbox Do?

  Sandbox leverages the OS-provided security to allow code execution that cannot make persistent changes to the computer or access information that is confidential.

What the Sandbox's structure is?

  Sandbox operates at process-level granularity. Anything that needs to be sandboxed needs to live on a separate process.

  The minimal sandbox configuration has two processes: one that is a privileged controller known as the broker, and one or more sandboxed processes known as the target.

  

Broker

   Browser process(Chromium):

  1. Specify the policy for each target process
  2. Spawn the target processes
  3. Host the sandbox policy engine service
  4. Host the sandbox interception manager
  5. Host the sandbox IPC service (to the target processes)
  6. Perform the policy-allowed actions on behalf of the target process

Target

   Renderers process, hosts all the code that is going to run inside the sandbox:

  1. All code to be sandboxed
  2. The sandbox IPC client
  3. The sandbox policy engine client
  4. The sandbox interceptions

  Target process restrictions:

    • Forbid per-use system-wide changes using SystemParametersInfo(), which can be used to swap the mouse buttons or set the screen saver timeout
    • Forbid the creation or switch of Desktops
    • Forbid changes to the per-user display configuration such as resolution and primary display
    • No read or write to the clipboard
    • Forbid Windows message broadcasts
    • Forbid setting global Windows hooks (using SetWindowsHookEx())
    • Forbid access to the global atoms table
    • Forbid access to USER handles created outside the Job object
    • One active process limit (disallows creating child processes)

  Allowed resource access:

    • Read access to most files
    • Write access to %USER PROFILE%\AppData\LocalLow
    • Read access to most of the registry
    • Write access to HKEY_CURRENT_USER\Software\AppDataLow
    • Clipboard (copy and paste for certain formats)
    • Remote procedure call (RPC)
    • TCP/IP Sockets
    • Window messages exposed via ChangeWindowMessageFilter
    • Shared memory exposed via LI (low integrity) labels
    • COM interfaces with LI (low integrity) launch activation rights
    • Named pipes exposed via LI (low integrity) labels

refers:

https://chromium.googlesource.com/chromium/src/+/master/docs/design/sandbox.md

Chromium(Chrome) Sandbox Details的更多相关文章

  1. Chromium(Chrome) frame structure detail

    1. Chromium VS Chrome Chromium is an open-source Web browser project started by Google, to provide t ...

  2. Ubuntu 16.04下安装64位谷歌Chromium(Chrome)浏览器

    在命令行下输入: sudo add-apt-repository ppa:a-v-shkop/chromium sudo apt-get update sudo apt-get install chr ...

  3. docker chromium/chrome: error while loading shared libraries: libXcursor.so.2: cannot open shared object file: No such file or directory

    在运行 pyppeteer 的时候,因为依赖浏览器,出现上述情况. 解决办法: 一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误.原因一般有两个, 一个是操作系统里确实没有包含 ...

  4. Chrome 红色和 Chromium蓝色 区别:logoChrome 红色和 Chromium蓝色;Chrome闭源和 Chromium开源;

    我们知道Chromium采用的BSD开源协议(Chromium首页.文档和下载),google chrome是闭源的("9.2 根据第 1.2 条规定,除非法律明确允许或要求,或经谷歌明确书 ...

  5. Chrome Is The New C Runtime

    出处:https://www.mobilespan.com/content/chrome-is-the-new-c-runtime Chrome Is The New C Runtime Date:  ...

  6. Web自动化之Headless Chrome开发工具库

    命令行运行Headless Chrome Chrome 安装(需要带梯子) 下载地址 几个版本的比较 Chromium 不是Chrome,但Chrome的内容基本来源于Chromium,这个是开源的版 ...

  7. chromium os系统编译与环境搭建

    官方网址:http://www.chromium.org/chromium-os chromium os是google自2009年开启的项目,是一款开源的电脑操作系统,用于开发chromium/chr ...

  8. Android chromium 1

    For Developers‎ > ‎Design Documents‎ > ‎ Java Resources on Android Overview Chrome for Android ...

  9. 从Chrome源码看audio/video流媒体实现二(转)

    第一篇主要介绍了Chrome加载音视频的缓冲控制机制和编解码基础,本篇将比较深入地介绍解码播放的过程.以Chromium 69版本做研究. 由于Chromium默认不能播放Mp4,所以需要需要改一下源 ...

随机推荐

  1. 将 Range 对象赋给变量

    有多种方法将现有的 Range 对象赋给变量.本主题对两种不同的方法进行了阐述.在下列示例中,将 Range 对象赋给变量 Range1 和 Range2.例如,下列指令将活动文档中的第一个和第二个单 ...

  2. MySQL 使用join操作时出现重复数据

    使用  group by 'id'' 如:SELECT e.* FROM excel e INNER JOIN task t ON t.eid=e.id where e.id>0  and t. ...

  3. HashMap(1.8)理解

    先放一个流程图了解一下HashMap的put()操作: 1.HashMap底层采用数组.链表.红黑树来实现. 2.表的长度一定是2^n(便于快速计算hash值和扩展),若初始化时指定容量不满足,则Ha ...

  4. 实践练习_使用HTML标签制作一个注册界面03

    使用HTML标签制作一个注册界面▲▲▲▲★1) 注册界面需要有用户名.密码.性别(单选).爱好(多选).专业(下拉列表)2) 注册界面需要有隐藏域和文件域3) 注册界面需要有提交和重置按钮4) 将上述 ...

  5. 初涉FlaskWeb开发----基础篇

    1.web程序运行的基本流程 {客户端发送请求 <-----> 服务器返回响应} 2.使用框架可以降低开发难度,提高开发效率. 3.Flask框架的基本认识: 特点:用Python语言实现 ...

  6. 两种语言实现设计模式(C++和Java)(三:策略模式)

    策略模式是指定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换.本模式使得算法可独立于使用它的客户而变化.也就是说这些算法所完成的功能一样,对外的接口一样,只是各自实现上存在差异.用策略模式 ...

  7. Knowledge From Practice(JavaScript)

    1.HTML事件对象 onmouseover:鼠标移入事件 onmouseout:鼠标移出事件 onmousedown:鼠标落下事件 onmouseup:鼠标抬起事件 例子: onclick:鼠标点击 ...

  8. 安装activeMQ(window,linux系统)

    今天学习了activeMQ服务器,把它说成成服务器是我的理解,,呵呵,首先,说一下它的安装, 官网:http://activemq.apache.org/overview.html window下的安 ...

  9. AI之旅(3):升维与最小二乘法

    前置知识   矩阵的逆 知识地图   首先我们将了解一种叫升维的方法,用已有特征构造更多的特征.接着通过对空间与投影建立一定的概念后,推导出最小二乘法. 当特征数量不足时   在上一篇<初识线性 ...

  10. inno安装客户端,写注册表url调用客户端

    [Registry] Root: HKCR; SubKey: xxx; ValueData: "xxx"; ValueType: string; Flags: CreateValu ...