Fenced Frames 是 Chrome 主导的实验性隐私沙盒机制,非标准功能,仅限 Chrome 120+ 实验环境;它通过隔离第三方内容(如广告)实现无 DOM 访问、无 Cookie 共享、无跨站跟踪,需配合 Protected Audience API 使用,暂不可用于生产环境。

关键前提:Fenced Frames 目前不能直接用 HTML 标签书写,也不被所有浏览器支持。它依赖于 Permissions Policy 和特定 API(如 `document.interestGroupAd` 或 `window.fence.registerAd`),且仅在 Chrome 120+ 的部分实验性环境(如启用 --enable-features=InterestGroupAPI,FencedFrames)中可用。标准 `
核心目标:隔离而非渲染
Fenced Frames 不是“画布”,而是“沙盒容器”。它不提供 DOM 访问、JavaScript 执行权或 Cookie 共享能力。第三方内容(如广告)只能通过受控接口(如 Protected Audience API)参与竞价与展示,无法读取用户浏览历史、URL、localStorage 或调用 parent.window。
当前可行的实践路径(开发者视角)
-
使用
<iframe>配合严格策略作为过渡方案:设置sandbox="allow-scripts"+referrerpolicy="no-referrer"+permissionspolicy="geolocation=(), camera=(), microphone=()",并确保 src 使用 HTTPS 且无第三方 Cookie 依赖 - 接入 Chrome 的 Protected Audience API(FLEDGE)生态:将广告逻辑迁移到基于 Fenced Frames 的竞价流程——由浏览器在本地执行广告匹配,只向卖家返回加密出价结果,不暴露用户标识
-
避免手动创建 Fenced Frame 元素:目前没有
document.createElement('fencedframe')或<fencedframe src="...">的合法用法;所有集成必须通过document.createAdFrame()(Chrome 实验 API,非标准)或框架封装(如 Google 的@google.com/fenced-framepolyfill 库,仅用于测试)
对网站主的实际建议
- 暂不将 Fenced Frames 用于生产环境,尤其面向多浏览器用户时
- 关注 W3C Privacy Community Group 对 Fenced Frames 规范草案 的更新节奏
- 优先采用已落地的隐私技术:First-Party Sets、Storage Access API、Conversion Measurement API,并配合 Consent Management Platform(CMP)获取明确授权
- 若测试需要,可在 Chrome Canary 中启用实验标志后,参考 Chrome 官方文档 运行最小示例
不复杂但容易忽略:Fenced Frames 的价值不在“怎么写标签”,而在重构内容分发的信任模型——把用户数据留在设备端,让第三方靠信号(而非身份)竞争展示机会。



















