AI 编程教程中文版
官方教程中文版05 · MCP & Security

Strict Mode、Sandbox 与 URL Allowlist

基于官方文档解释 Antigravity Strict Mode、Sandbox、URL Allowlist 和文件访问边界。

Antigravity 的安全控制不是一个开关,而是一组组合:Strict Mode(严格模式)、browser allowlist / denylist(浏览器白名单 / 黑名单)、terminal sandbox(终端沙箱)、artifact review(产物审核)、browser JavaScript review(浏览器 JS 审核)、workspace file access(工作区文件访问)。真实项目要把这些组合起来,而不是只打开某一个设置。

阅读目标:读完本章,你应该能为真实项目建立“默认不越界、需要副作用就请求确认”的安全配置。

1. URL 访问有 denylist 和 allowlist 两层

官方 Allowlist / Denylist 文档说明,Browser 使用两层安全系统控制 URL:

官方说明关键点
Denylist使用 Google Superroots BadUrlsChecker 服务维护和强制执行denylist 优先,server 不可用时默认拒绝
Allowlist本地可编辑文本文件,用来显式信任 URL初始只有 localhost,可手动增删

当 browser 尝试访问不在 allowlist 的 URL 时,会弹出提示;点击 always allow 会把该 URL 加入 allowlist。即使 allowlist 里有某 URL,只要它在 denylist 中,仍然不能访问。

官方默认 allowlist 只有 localhost,这很合理。前端开发第一阶段就应该从 localhost 验证开始。

2. Strict Mode 会强制收紧多个设置

官方 Strict Mode 文档说明,开启 strict mode 后会执行增强安全控制。

领域Strict Mode 行为
Browser URLexternal markdown images 和 Read URL tool 受 allowlist / denylist 控制
Terminal Auto Execution强制 Request Review,并忽略 terminal allowlist
Browser JavaScript Execution强制 Request Review
Artifact Review强制 Request Review
File System Accessrespect .gitignore,禁止 workspace 外文件访问

Strict Mode 的价值是把多个容易漏掉的设置一次性收紧。它适合:

  • 真实业务项目。
  • 有 secrets 的仓库。
  • 会访问外部网页或浏览器的任务。
  • 会运行 terminal 命令的任务。
  • 多 agent 或长任务场景。

3. Sandboxing 限制 terminal 命令运行环境

官方 Sandboxing 文档说明,terminal sandbox 为 Agent 执行的 terminal 命令提供 kernel-level isolation。当前默认禁用,但未来可能变化。macOS 使用 Seatbelt,也就是 sandbox-exec;Linux 使用 nsjail

开启后有两个核心限制:

限制官方说明
File System命令只能写 workspace 和必要系统位置,避免误删或修改项目外文件
Network Access可以单独用 Sandbox Allow Network 控制是否允许联网

如果命令因 sandbox 限制失败,官方给出两条处理路径:

  • 在 User Settings 里永久关闭 sandbox。
  • 在 Request Review 模式下,对单个命令选择 Bypass Sandbox

Sandbox 失败不要第一反应永久关闭。先判断命令是不是真的需要 workspace 外文件或网络;如果只是一次性需要,优先单命令 bypass。

4. Strict Mode 与 Sandbox 的关系

官方 Sandboxing 文档说明,Strict Mode 开启时,sandbox 会自动启用,并且网络访问被拒绝。

flowchart TD
  Task["Agent task"] --> Strict{"Strict Mode"}
  Strict -->|on| Request["Terminal / Browser JS / Artifact Review = Request Review"]
  Strict -->|on| Files["Respect .gitignore + workspace isolation"]
  Strict -->|on| Sandbox["Sandbox on + network denied"]
  Strict -->|off| Custom["按用户自定义设置执行"]
  Request --> Human["等待人工确认"]
  Sandbox --> Limited["限制文件系统和网络"]

这说明 Strict Mode 更像安全上限:一旦开启,它会覆盖一些更宽松的设置,强制把高副作用动作拉回人工审查。

5. 文件访问边界

Strict Mode 会让 Agent respect .gitignore,并关闭 workspace 外文件访问。这个行为对真实项目很重要,因为 .gitignore 常常包含:

  • .env
  • 构建产物。
  • 本地缓存。
  • 凭据文件。
  • 私有输出目录。

如果你确实需要 agent 读取 workspace 外文件,优先做临时复制或最小路径授权,不要开放整个 home 目录。

深读:为什么 terminal allowlist 在 Strict Mode 下会被忽略

官方 Strict Mode 文档说明,开启 strict mode 后 Terminal Auto Execution 被设为 Request Review,并且 terminal allowlist 会被忽略。

这个设计避免了一个常见漏洞:你以为自己进入安全模式,但之前配置过的自动执行命令仍然悄悄运行。Strict Mode 的目标是重新收紧高副作用能力,所以它必须让 terminal 命令重新回到人工确认。

6. 推荐默认安全组合

真实项目起点可以这样设:

设置推荐为什么
Strict Mode开启一次把多个高副作用动作拉回人工审查,避免设置遗漏
Terminal Sandboxing开启命令默认只能写 workspace,误删项目外文件不会发生
Sandbox Network Access默认关闭,需要时单次放开联网命令是供应链投毒的最大入口
Artifact ReviewRequest Reviewagent 改 artifact 前先停下,人看一眼 diff
Browser JavaScript ExecutionRequest ReviewJS 能调用任意外部 API,强制审查避免账号被滥用
Browser URL Allowlist只放 localhost 和必要官方域名默认 allowlist 只有 localhost,先用本地验证再扩
Non-Workspace File Access关闭配合 Strict Mode 的 .gitignore respect,secrets 不会被读
MCP tools按任务启用,写操作默认 AskMCP 的 token 通常长期有效,写权限滥用代价高

本章自检

完成本章后,用这 3 个问题检查自己是否真正理解:

  1. Denylist 和 allowlist 谁优先?server 不可用时会怎样?
  2. Strict Mode 会强制改变哪些 terminal、browser、artifact 和 file access 行为?
  3. Sandbox 和 Request Review 的职责有什么不同?

通过标准:你能为一个含 secrets 的真实项目配置 strict mode、安全 URL 范围和 terminal sandbox,并解释哪些动作需要人工确认。

官方来源

接下来去哪

本页目录