1.为什么需要沙箱机制?
默认情况下,一个应用程序是可以访问机器上的所有资源的,比如CPU、内存、文件系统、网络等等。
但是这是不安全的,如果随意操作资源,有可能破坏其他应用程序正在使用的资源,或者造成数据泄漏。为了解决这个问题,一般有下面两种解决方案:
- 为程序分配一个限定权限的账号:利用操作系统的权限管理机制进行限制
- 为程序提供一个受限的运行环境:这就是沙箱机制
2.什么是沙箱机制?
如上所述,沙箱就是一个限制应用程序对系统资源的访问的运行环境。
沙箱很多情况下都是实现在虚拟机(VM)中,比如Java的虚拟机JVM、Javascript的虚拟机V8引擎、Android中的虚拟机Dalvik/ART,以及以太坊的虚拟机EVM等等。具体的实现方式各有不同
就像上面这个图一样,有两个正方形,相互是独立的,里面各自装着应用,第一个正方形里的应用和第二个正方形的应用互不影响