---
title: "Strict Mode、Sandbox 与 URL Allowlist"
description: "基于官方文档解释 Antigravity Strict Mode、Sandbox、URL Allowlist 和文件访问边界。"
verifiedAt: "2026-05-07"
---

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

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

## 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 中，仍然不能访问。

> [!IMPORTANT]
> 官方默认 allowlist 只有 localhost，这很合理。前端开发第一阶段就应该从 `localhost` 验证开始。

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

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

| 领域 | Strict Mode 行为 |
| --- | --- |
| Browser URL | external 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 Access | respect `.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`。

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

## 4. Strict Mode 与 Sandbox 的关系

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

```mermaid
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 目录。

<details>
<summary>深读：为什么 terminal allowlist 在 Strict Mode 下会被忽略</summary>

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

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

## 6. 推荐默认安全组合

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

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

## 本章自检

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

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

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

## 官方来源

- [Google Antigravity Allowlist / Denylist](https://antigravity.google/docs/allowlist-denylist) —— 官方说明 browser URL denylist、allowlist、localhost 初始状态和 denylist 优先级。
- [Google Antigravity Strict Mode](https://antigravity.google/docs/strict-mode) —— 官方说明 strict mode 对 URL、terminal、browser JavaScript、artifact review 和 file access 的强制收紧。
- [Google Antigravity Sandboxing Terminal Commands](https://antigravity.google/docs/sandbox-mode) —— 官方说明 macOS / Linux sandbox、文件系统限制、网络限制、bypass 和 strict mode 关系。

## 接下来去哪

<Cards>
  <Card title="MCP 集成与权限边界" description="回到 MCP server、resources、tools、OAuth 和 disabledTools 的配置审查。" href="/docs/antigravity/official/05-mcp-permissions-security/00-mcp-integration" />
  <Card title="Browser Subagent 与视觉证据" description="把 URL allowlist 和浏览器截图、录屏验收结合起来。" href="/docs/antigravity/official/03-browser-artifacts/01-browser-subagent-evidence" />
</Cards>
