Agent 安全边界
基于 Cursor 官方 Agent Security 和 Privacy 文档解释审批、.cursorignore、allowlist、MCP、网络、workspace trust 和 Privacy Mode。
Cursor Agent 能读文件、改文件、跑命令、连工具,也会面对 prompt injection、hallucinations 和其它不确定行为。官方 Agent Security 文档的核心结论是:默认敏感动作需要人工批准,这些 guardrails 建议保持开启。
阅读目标:读完本章,你应该能说清哪些 Agent 动作默认要审批,.cursorignore 和 allowlist 的边界是什么,以及 Privacy Mode 覆盖和不覆盖什么。
1. 默认 guardrails
官方文档说明:这些控制和行为是默认值,并建议保持开启。
| 动作 | 默认行为 | 你要做什么 |
|---|---|---|
| Read files / search code | 不需要审批 | 用 .cursorignore 阻止 Agent 访问特定文件 |
| Edit workspace files | 可直接保存到磁盘 | 必须用 Git,随时可 revert |
| Edit configuration files | 需要审批 | 看清影响范围再批准 |
| Run terminal commands | 默认需要审批 | 每条命令都要审查 |
| Sensitive data exposure | 需要明确批准 | 不让 Agent 触碰密钥、客户数据、生产凭据 |
| MCP tool calls | 连接和每次调用都需要审批 | 只批准必要工具 |
官方特别提醒:如果项目启用了 auto-reload,Agent 保存的改动可能在你 review 前就被执行。前端 dev server、watch scripts、热更新后台都属于这类风险面。
2. 文件和配置
Agent 可以不经审批修改 workspace files,但 configuration files 需要你先批准。官方给出的工程建议是:始终使用 version control,这样 Agent 走错时可以回退。
flowchart TD
Agent["Cursor Agent"] --> Read["Read / search files"]
Agent --> Edit["Edit workspace files"]
Agent --> Config["Edit configuration files"]
Agent --> Terminal["Run terminal commands"]
Read --> Ignore["Use .cursorignore for blocked files"]
Edit --> Git["Use Git for revert path"]
Config --> Approval["Manual approval"]
Terminal --> Review["Review every command"]
.cursorignore 是文件可见性的边界工具。它适合屏蔽 secrets、private notes、customer exports、large generated files 等不应进入 Agent context 的内容。
3. Terminal、allowlist 和 Run Everything
官方文档说明:terminal commands 默认需要审批。你可以启用 auto-approval,但这是接受风险后的选择。
关键边界:
- Allowlist 是 best-effort,不是安全保证。
- Bypass 是可能的。
- 不要使用
Run Everythingmode,因为它会跳过所有 safety checks。 - Terminal commands 和 MCP tools 的 allowlists 可以通过 settings UI 或
~/.cursor/permissions.json管理。
深读:allowlist 为什么不是安全边界
Allowlist 的目标是减少重复审批,不是证明命令安全。命令可能通过 shell expansion、脚本间接调用、参数拼接或外部工具行为绕过你的直觉。
所以 allowlist 只适合低风险、可预测、幂等的命令。涉及删除、网络上传、权限修改、生产数据、密钥读取的动作,不应该靠 allowlist 放行。
4. MCP 和网络请求
官方文档说明:第三方工具通过 MCP 接入。所有 MCP connections 都需要审批;连接批准后,每次 tool call 仍然需要单独审批。你可以为特定 tools 预批准 MCP allowlist。
网络请求方面,官方说明默认工具只会向这些方向发起网络请求:
- GitHub。
- Direct link retrieval。
- Web search providers。
默认设置下,Agents 不能发起 arbitrary network requests。团队里一旦接入 MCP 或命令行工具,就要重新评估网络出口。
5. Workspace Trust
Cursor 支持 VS Code 的 workspace trust,但官方说明它默认关闭。启用后,新 workspace 会提示你选择 normal 或 restricted mode;restricted mode 会破坏 AI features。对 untrusted repos,官方建议用基础文本编辑器。
启用方式是在 user settings.json 中加入:
"security.workspace.trust.enabled": true组织可以通过 MDM(Mobile Device Management,移动设备管理,企业用来统一推下发设备策略的系统)enforce 这个设置。
6. Privacy Mode
官方 Privacy 文档说明:Privacy Mode 会确保你的代码不会被 AI model providers 存储或用于训练。开启后,Cursor 会对 OpenAI、Anthropic、Google、xAI 等 model providers 执行 zero data retention agreements(ZDR,零数据保留协议——供应商承诺请求处理完成后立即删除数据)。
开启入口:
| 系统 | 打开 Cursor Settings |
|---|---|
| Mac | Cmd + Shift + J |
| Windows / Linux | Ctrl + Shift + J |
进入 General 后打开 Privacy Mode。Teams 默认开启 Privacy Mode;Admins 可以在 dashboard 里 organization-wide enforce,防止成员关闭。
Privacy Mode 仍有边界:
- 使用 AI features 时,prompts 和 code context 仍会发送给 model providers。
- Privacy Mode 开启后,providers 不能存储或训练这些数据。
- 数据 at rest 和 in transit 都加密。
- 使用自己的 API keys 时,ZDR 不适用,数据处理遵循你所用 provider 的 privacy policy。
7. 团队安全清单
落地 Cursor Agent 前,至少定这些规则:
- 哪些文件进入
.cursorignore。 - 哪些 terminal commands 可以审批,哪些必须禁止。
- 是否允许 auto-approval。
- 禁止
Run Everything。 - 哪些 MCP servers 可以连接。
- MCP tools 是否允许 allowlist。
- Privacy Mode 是否强制开启。
- 自带 API keys 时由谁负责 provider privacy policy。
- Agent 造成改动后,必须用 Git diff、测试和 review 验收。
本章自检
完成本章后,用这 3 个问题检查自己是否真正理解:
- Cursor Agent 对文件读取、文件编辑、配置编辑、终端命令的默认审批边界分别是什么?
- 为什么 allowlist 不是安全保证?
- Privacy Mode 开启后,什么数据仍会发送给 model providers,什么不会被他们存储或训练?
通过标准:你能为一个团队 Cursor 项目写出最小安全策略,覆盖文件、命令、MCP、网络、Privacy Mode 和回退。
官方来源
- Cursor Agent Security —— 官方说明 first-party tools、terminal approval、allowlist、MCP、network requests、workspace trust 和 disclosure。
- Cursor Privacy and Data —— 官方说明 Privacy Mode、ZDR、AI providers、team enforcement、API key exception 和 enterprise controls。
- Cursor Permissions Reference —— 官方说明 terminal 和 MCP allowlist 配置。