浏览器沙箱-sandbox
对于浏览器沙箱,即sandbox(现在已经差不多成为了“资源隔离类模块”的代名词)。
sandbox的设计的目的一般是为了让不可信任的代码运行在一定的环境中,限制不可信任的代码访问隔离区以外的资源。如果一定要跨域sandbox边界产生数据交换,则只能通过指定的数据通道,比如经过封装过的API来完成,在这些API中会严格检查请求的合法性。
来看看google chrome,chrome是第一个采用多进程架构的浏览器,其主要进程有:浏览器进程,渲染进程,插件进程,扩展进程(插件进程如flash,java,pdf等与浏览器进程严格隔离,因此不会产生影响)。
sandbox的应用范围非常广泛,比如一个提供hosting服务的共享主机环境,假设支持用户上传php,pythen,java语言等代码,为了防止用户破坏系统环境,或者是不同用户之间的代码互相影响,则应该去设计一个sandbox来对用户代码进行隔离。
---------------------------------邪恶的分割线-----------------------------------------
然而,对于第三方插件,往往是不受sandbox管辖。