04 — Site Isolation 与 SiteInstance
Site Isolation 是 Chrome 安全模型里的高频考点。它的核心是:尽量让不同站点的页面运行在不同 Renderer 进程中。
Site Isolation 解决什么
同源策略主要是浏览器规则,但如果多个站点共享同一个 Renderer 进程,一旦 Renderer 被漏洞攻破,攻击者可能读取同进程内其他站点的数据。
Site Isolation 把站点边界和进程边界尽量对齐,降低 Spectre 类侧信道和 Renderer 漏洞的影响范围。
SiteInstance
SiteInstance 表示一组应该共享同一 Renderer 进程的文档或 worker。
常见理解:
- 默认站点粒度通常是 scheme + eTLD+1,不是完整 origin。
- 同站页面更可能复用进程。
- 跨站导航或跨站 iframe 可能切换到新的
SiteInstance。 - 跨进程 iframe 就是 OOPIF。
为什么不是每个 origin 一个进程
每 origin 一个进程隔离更细,但成本太高,也会碰到历史兼容问题,例如 document.domain。所以 Chrome 默认更多按 site 隔离,再通过策略、header 或特殊 URL 做更细调整。
Site Isolation 和沙箱的关系
二者解决的问题不同:
- 沙箱:限制 Renderer 被攻破后能调用哪些系统能力。
- Site Isolation:限制 Renderer 进程里本来就有哪些站点数据。
总结
Site Isolation 是把“站点隔离”落到进程边界上。它不能防止 XSS 本身,但能降低 Renderer 漏洞或侧信道攻击后读取其他站点数据的风险。