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. 在eclipse上集成安装阿里巴巴代码规约P3C插件

    在eclipse上集成安装阿里巴巴代码规约P3C插件 参照网址: https://jingyan.baidu.com/article/2d5afd6923e78b85a3e28e5e.html 首先进 ...

  2. 用powermock 方法中new对象

    在单元测试中有时需要对方法体内new出来的对象进行方法隔离,powermock提供了这个功能,下面是一个段样例代码: UserBean user = mock(UserBean.class, RETU ...

  3. 设置Ubuntu右侧显示扩展屏幕。。。

    sudo xrandr --output VGA1 --right-of LVDS1 --auto

  4. springboot application.properties 常用完整版配置信息

    从springboot官方文档中扒出来的,留存一下以后应该会用到 # ================================================================= ...

  5. IntelliJ IDEA 2018 破解过程[详细步骤](Mac OS & Windows)

    注册码获取地址:http://idea.lanyus.com/ 1.软件下载 首先进入https://www.jetbrains.com官网进行下载. 2.下载破解包 可百度搜索JetbrainsCr ...

  6. Asp.net中时间格式化的几种方法

    1. 数据控件绑定时格式化日期方法:<asp:BoundColumn DataField="AddTime" HeaderText="添加时间" Data ...

  7. winform checkedlistbox 设置行颜色

    重写OnDrawItem事件 public class ColorCodedCheckedListBox : CheckedListBox{ protected override void OnDra ...

  8. React-redux深入理解

    首先,一张 Redux 解释图镇楼: [回顾]Redux 的核心: store 是什么?(createStore 函数的实现) const store = createStore(reducer); ...

  9. 关于Airtest的使用探索

    一.Airtest的简介   Airtest是网易出品的一款基于图像识别和poco控件识别的一款UI自动化测试工具.Airtest的框架是网易团队自己开发的一个图像识别框架,这个框架的祖宗就是一种新颖 ...

  10. 我的代码-random forest

    # coding: utf-8 # In[1]: import pandas as pdimport numpy as npfrom sklearn import treefrom sklearn.s ...