1. 多进程架构基础
每个标签页、插件、扩展均运行在独立进程中。例如,打开10个标签页会生成10个渲染进程,若其中一个崩溃(如插件错误),仅影响当前标签,其他页面不受影响。主进程负责协调各子进程资源分配。
2. 渲染进程隔离
渲染进程(如Tab 1、Tab 2)彼此隔离,无法直接访问其他标签页的数据。例如,在Tab 1中运行的JavaScript脚本无法读取Tab 2的Cookie或本地存储信息,防止跨标签攻击。
3. 插件与扩展独立沙盒
Chrome为每个插件(如Flash)和扩展单独创建进程,并限制其权限:
- 禁止插件直接操作文件系统或读取敏感系统数据。
- 若插件崩溃,仅终止自身进程,不影响浏览器主进程和其他标签。
4. GPU进程硬件加速
当启用硬件加速时,Chrome会创建专用GPU进程处理网页渲染(如视频播放、3D动画)。该进程与渲染进程隔离,防止图形层漏洞被利用窃取内存数据。
5. 网络进程管理请求
所有网络请求(如加载网页、下载文件)由网络进程统一处理。该进程负责:
- 管理HTTP/HTTPS连接,确保SSL证书验证。
- 限制渲染进程直接发起网络请求,需通过API代理提交。
6. 沙盒环境限制
每个渲染进程和插件进程均运行在沙盒中,权限受限:
- 无法修改系统文件或注册表。
- 禁止访问其他进程的内存空间(如主进程或其他标签页)。
- 需通过Chrome API申请特定权限(如读取剪贴板)。
7. Site Isolation独立站点隔离
为防御跨站点脚本攻击,Chrome强制将不同域名的标签页分配至不同渲染进程。例如,打开`a.com`和`b.com`时,即使两个页面嵌套iframe,也会分别运行在不同进程中,避免数据泄露。
8. 内存分配隔离
渲染进程的内存分配由Chrome的主进程控制,通过操作系统的内存保护机制(如Windows的Job Object)限制进程内存使用上限,防止恶意页面耗尽系统资源。
9. 跨进程通信(IPC)安全
进程间通信通过Chrome的IPC机制完成,但消息传递受严格限制:
- 渲染进程无法主动向其他进程发送任意消息。
- 敏感操作(如截屏、录制视频)需用户显式授权。
- 消息内容需符合Chrome定义的协议格式,防止注入恶意数据。
10. 崩溃恢复机制
当渲染进程崩溃时,Chrome会自动重启进程并恢复标签页状态(如滚动位置、表单输入)。崩溃日志会上传到Google服务器,用于改进稳定性算法。
11. WebContents权限控制
渲染进程内的网页内容(如HTML、JS)被封装在`WebContents`对象中,禁止直接调用系统API。例如,网页无法通过JavaScript调用操作系统命令,必须通过Chrome扩展API(如`chrome.runtime`)受控执行。
12. 第三方代码审计与硬化
Chrome团队定期审查开源组件(如V8引擎、FFmpeg),修复潜在漏洞。关键组件(如PDF查看器)运行在独立沙盒进程中,减少攻击面。
通过以上机制,Chrome在提升性能的同时,有效降低了恶意代码对系统的威胁。用户可通过`chrome://flags/`页面启用“Site PerProcess”等实验性功能,进一步强化隔离效果。