黑客会在网页中插入一段恶意代码, 然后利用浏览器漏洞来执行任意代码, 这就叫做 "挂马". 它是浏览器所面对的一种主要的威胁.
浏览器为了应对 "挂马" 威胁, 从单进程架构转变为多进程架构. 浏览器的多进程架构, 会分开浏览器的各个功能模块. 这样当一个浏览器进程崩溃时, 也不会影响到其他的浏览器进程.
Chrome 浏览器是第一个采用多进程 (Multiprocessing) 架构的浏览器: 这个架构能容许多个程序同时运行而互不影响, 每个网页标签都是独立于窗口程序而存在, 当资源过高或崩溃时, 不会因为一个停顿而整个程序当掉. 这样做, 可以极大地提升用户体验.
Chrome 浏览器包含浏览器进程, 渲染进程, 插件进程以及扩展进程. 插件进程, 比如 flash,java 等进程会与浏览器进程严格隔离:
渲染进程被沙箱 (Sandbox) 隔离, 网页 web 代码内容必须通过 IPC 通道才能与浏览器内核进程通信, 通信过程会进行安全的检查.
沙箱设计的目的是为了让不可信的代码运行在一定的环境中, 从而限制这些代码访问隔离区之外的资源. 如果因为某种原因, 确实需要访问隔离区外的资源, 那么就必须通过的指定的通道, 这些通道会进行严格的安全检查, 来判断请求的合法性. 通道会采取默认拒绝的策略, 一般采用封装 API 的方式来实现.
Chrome 中的每一个标签页都是一个沙箱 (sandbox). 为了防止 "恶意软件破坏用户系统" 或 "利用标签页影响其他标签页". 沙箱遵循最小权限原则, 每个动作的权限都会被限制, 仅能运算而无法写入文件和从敏感区域(即受保护区域) 读取文件(如我的文档, 桌面). 例如在其中一个标签页运作的恶意软件, 将无法窃取信用卡号码, 干扰鼠标运作, 或告诉系统在启动时运行某个程序, 并且恶意软件会在标签页关闭时立即中止.
来源: http://www.jianshu.com/p/5feda3e1de9a