Skip to content

一、浏览器安全模型总览(先有全局)

可以把浏览器想成一个沙箱操作系统

用户数据(Cookie / 本地文件 / 摄像头)

   浏览器安全边界

网页 JS(不可信)

核心目标三句话:

  • 1️⃣ 网页之间不能互相攻击
  • 2️⃣ 网页不能随意访问用户隐私和系统资源
  • 3️⃣ 漏洞出现时,影响范围要尽量小

二、核心安全边界(面试最常问)

1️⃣ 同源隔离(Origin-based Isolation)

这是浏览器最基础的安全边界。

限制的对象

  • DOM
  • Cookie / Storage
  • JS 执行环境
text
不同 Origin = 不同安全域

为什么不是「域名」?

因为:

  • 协议不同(http / https)安全级别不同
  • 端口不同 → 可能是不同服务

2️⃣ 进程隔离(Process Isolation)⭐⭐⭐⭐⭐

现代浏览器最重要的安全升级

早期(不安全)

  • 多个页面共用一个进程
  • 一个 XSS → 全部沦陷

现代浏览器(Chrome 为代表)

  • Site Isolation
  • 一个站点 ≈ 一个渲染进程
Browser Process
 ├── Renderer (site A)
 ├── Renderer (site B)
 └── Network Process

好处

  • 即使 JS 被攻破,也困在进程里
  • 防 Spectre 类硬件漏洞

3️⃣ 沙箱(Sandbox)⭐⭐⭐⭐⭐

JS ≠ 系统权限

JS 能做什么?

  • ✅ 操作 DOM
  • ✅ 发网络请求
  • ❌ 读文件系统
  • ❌ 访问系统 API
  • ❌ 执行本地程序

底层

  • 操作系统级沙箱
  • seccomp / AppContainer / seatbelt

三、资源访问控制模型

1️⃣ 网络请求模型

JS 发请求

js
fetch(url)

限制点:

  • 同源策略(读响应)
  • CORS(服务器放行)
  • Mixed Content(HTTPS 页面不能请求 HTTP)
http
Set-Cookie:
  HttpOnly;
  Secure;
  SameSite

各字段作用

字段防什么
HttpOnly防 XSS
Secure防中间人
SameSite防 CSRF

3️⃣ Storage 隔离

存储隔离维度
localStorageorigin
sessionStoragetab + origin
IndexedDBorigin

⚠️ iframe 不同源完全隔离

四、代码执行安全(JS 执行模型)

1️⃣ JS 是单线程,但不是单环境

Main Thread
 ├── JS
 ├── DOM
 └── Layout

为什么重要?

  • 阻塞 ≠ 安全
  • Worker 执行环境更“干净”

2️⃣ Web Worker 安全

能力是否允许
DOM
Cookie
fetch
postMessage

👉 Worker 是 隔离计算沙箱

3️⃣ eval / new Function(高危)

原因:

  • 绕过静态分析
  • 绕过 CSP
  • 执行用户输入
js
eval(userInput) // ❌

五、跨文档通信安全(postMessage)

正确用法(高频考点)

js
window.addEventListener('message', e => {
  if (e.origin !== 'https://trusted.com') return
})

错误示例

js
window.addEventListener('message', e => {
  // 不校验 origin
})

六、权限模型(Permissions API)

浏览器对敏感能力 显式授权

能力是否弹窗
摄像头
麦克风
定位
剪贴板部分

👉 且是:

  • 按站点
  • 可随时撤销

七、HTTPS 与传输安全

为什么 HTTPS 是安全模型的一部分?

没有 HTTPS:

  • 同源策略 ≈ 失效
  • Cookie 可被劫持
  • CSP 可被篡改

HSTS

http
Strict-Transport-Security: max-age=31536000

八、常见攻击在安全模型中的“位置”

攻击突破哪层
XSSJS 执行层
CSRFCookie 自动发送
ClickjackingUI 层
Spectre进程隔离
供应链攻击执行信任链

九、面试“安全模型”终极总结

  • 浏览器安全模型通过同源策略、进程隔离和沙箱机制,将不可信的网页代码限制在最小权限范围内;同时结合 CORS、CSP、权限系统和 HTTPS,防止数据泄露、代码注入和越权访问。