Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 577

iframe sandbox 属性

审核人Cybersecurity entrepreneur & security researcher

iframe sandbox 属性 是什么?

iframe sandbox 属性HTML 属性,为 iframe 内容施加额外限制,默认禁用脚本、表单、导航与同源访问,除非显式重新启用。


<iframe> 上的 sandbox 属性由 HTML Living Standard 定义,为嵌入内容应用最小权限策略。当取空值(sandbox="")时,它会禁用脚本、插件、表单提交、顶层导航与同源导航、弹窗、指针锁定、自动播放,以及 Pointer Lock 和 Presentation API,并强制该框架进入唯一的不透明源(unique opaque origin),使其无法读取父页的 Cookie、localStorage 或 DOM。各项能力需通过令牌逐项重新授予——allow-scriptsallow-same-originallow-formsallow-popupsallow-modalsallow-downloadsallow-top-navigation-by-user-activation

最关键的陷阱在于:同时组合 allow-scripts allow-same-origin 会让框架恢复到其真实源并且能够运行 JavaScript,于是被沙箱包裹的代码可以直接访问自身 DOM,并从某个嵌套框架上移除 sandbox 属性——从而使保护失效。要托管真正不可信的内容,应将其隔离在单独的源上,并将 sandbox 与 Content-Security-Policy: sandbox(它无法被标记语言剥离)以及 Cross-Origin-Opener/Embedder 策略配合使用。沙箱机制支撑着广告、富文本预览和第三方组件的安全渲染;Google 的 Caja 以及 CodePen、JSFiddle 等现代服务都依赖运行在临时源上的沙箱框架,以在不危及宿主页面的前提下运行攻击者可控的代码。

flowchart TD
  A[父页面] --> B["&lt;iframe sandbox&gt;<br/>嵌入不可信内容"]
  B --> C{设置了哪些令牌?}
  C -->|"sandbox=&quot;&quot; (空值)"| D[不透明源,无脚本,<br/>无表单,无导航]
  C -->|仅 allow-scripts| E[脚本运行,仍为<br/>不透明源 - 安全]
  C -->|"allow-scripts +<br/>allow-same-origin"| F[真实源 + 脚本:<br/>框架可移除自身<br/>sandbox = 逃逸]
  E --> G[添加 CSP: sandbox 响应头<br/>独立源 = 纵深防御]

示例

  1. 01

    <iframe src="/preview" sandbox="allow-scripts"></iframe> 用于安全渲染不可信的 HTML。

  2. 02

    通过 sandbox="" 嵌入第三方组件,拒绝所有能力。

常见问题

iframe sandbox 属性 是什么?

HTML 属性,为 iframe 内容施加额外限制,默认禁用脚本、表单、导航与同源访问,除非显式重新启用。 它属于网络安全的 应用安全 分类。

iframe sandbox 属性 是什么意思?

HTML 属性,为 iframe 内容施加额外限制,默认禁用脚本、表单、导航与同源访问,除非显式重新启用。

如何防御 iframe sandbox 属性?

针对 iframe sandbox 属性 的防御通常结合技术控制与运营实践,详见上方完整定义。

相关术语

另见