October 8, 2025 Claude Code

超越权限提示:让 Claude Code 更安全、更自主

观看 Claude Code 的实际工作方式:从想法到 commit,一条流畅的工作流。

超越权限提示:让 Claude Code 更安全、更自主

在 Claude Code 中,Claude 会和你一起写代码、测试代码、调试代码,浏览你的代码库,编辑多个文件,并运行命令来验证工作。给 Claude 这么多代码库和文件访问权限会带来风险,尤其是在 prompt injection 场景下,例如 Claude 删除了你并不想删除的文件。

为了解决这个问题,我们在 Claude Code 中引入了两个基于 sandboxing 的新功能。它们都旨在为开发者提供更安全的工作空间,同时也让 Claude 可以更自主地运行,减少权限提示。这些功能是原生 sandboxing 的例子:通过定义 Claude 可以自由工作的边界,同时提升安全性和 Agent 能力。

我们目前保护用户安全的方式

Claude Code 采用基于权限的模型:默认是只读的,也就是说,在修改文件或运行任何命令前,它会请求权限。也有一些例外:我们使用静态分析自动允许 echo 或 cat 这类安全命令,但大多数操作仍需要明确批准。

但不断点击“approve”会拖慢开发,并可能导致“审批疲劳”:用户可能不再认真关注自己批准了什么。为了让 Claude Code 既更安全又更有效,我们想找到更好的方法。

Sandboxing:更安全也更自主的方法

Sandboxing 会创建预先定义的边界,让 Claude 可以在边界内更自由地工作,而不是每个动作都请求权限。

随着这次 Claude Code 更新,我们正转向这种方式。我们的 sandboxing 方法建立在操作系统级能力之上,用来支持两个新功能,而它们都基于两类边界:

• Filesystem isolation:确保 Claude 只能访问或修改特定目录。这对于防止遭到 prompt injection 的 Claude 修改敏感系统文件尤其重要。

• Network isolation:确保 Claude 只能连接到已批准的服务器。这可以防止遭到 prompt injection 的 Claude 泄露敏感信息或下载恶意软件。

值得注意的是,有效的 sandboxing 同时需要 filesystem isolation 和 network isolation。没有 network isolation,被攻陷的 Agent 可能外传 SSH keys 等敏感文件;没有 filesystem isolation,被攻陷的 Agent 可能轻易逃出 sandbox 并获得网络访问能力。正是结合这两种技术,我们才能为 Claude Code 用户提供更安全的 Agent 体验。

Claude Code 中的两个新 sandboxing 功能

Sandboxed bash tool:无需权限提示的安全 bash 执行

今天,我们推出一个新的 sandbox runtime,目前处于 research preview。它让你精确定义 Agent 可以访问哪些目录和网络主机,同时不需要启动和管理 container 的额外开销。它可以用于 sandbox 任意进程、agents 和 MCP servers。它现在以开源 research preview 形式提供:[Github link?]。在 Claude Code 中,我们用这个 runtime 对 bash tool 做 sandboxing,让 Claude 在你设定的边界内运行命令。这些命令默认更安全,也需要更少用户权限提示,因此 Claude 可以更自主地运行。如果 Claude 尝试访问 sandbox 外的内容,你会立即收到通知,并可以选择是否允许。

我们基于 [Linux bubblewrap](https://github.com/containers/bubblewrap) 和 MacOS seatbelt 等 OS 级原语来强制执行这些限制。它们不仅覆盖 Claude Code 的直接交互,也覆盖命令启动的任何脚本、程序或子进程。如上所述,这个 sandbox 同时强制执行:

• Filesystem isolation:允许读写当前工作目录,但阻止修改其外部的任何文件。

• Network isolation:只允许通过 unix domain socket 访问互联网,该 socket 连接到运行在 sandbox 外部的代理服务器。这个代理服务器会限制进程可连接的域名,并处理新请求域名的用户确认。如果你想进一步提高安全性,我们也支持自定义这个代理,对出站流量执行任意规则。

这两个组件都可以配置:你可以轻松选择允许或禁止特定文件路径或域名。

Sandboxing 确保即使 prompt injection 成功,也会被完全隔离,不会影响用户整体安全。这样,被攻陷的 Claude Code 不能窃取你的 SSH keys,也不能向攻击者服务器回传信息。

要开始使用这个功能,请运行:claude --sandbox,并在此处阅读关于我们安全模型的更多技术细节。

为了让其他团队更容易构建更安全的 agents,我们已经开源了 [XXX]。我们认为其他 AI 公司也应考虑在自己的 agents 中采用这项技术,以提升 agents 的安全态势。

Web 上的 Claude Code:在云端安全运行 Claude Code

今天,我们还发布了 [Claude Code on the web](TODO: Link to docs on CCR),让用户可以在云端隔离的 sandbox 中运行 Claude Code。Claude Code on the web 会在隔离 sandbox 中执行每个 Claude Code session,并以安全方式完全访问自己的服务器。我们设计这个 sandbox 时确保敏感凭据(例如 git credentials 或 signing keys)永远不会进入 Claude Code 所在的 sandbox 环境。这样,即使 sandbox 中运行的代码被攻陷,用户也不会受到进一步伤害。

Claude Code on the web 使用一个自定义代理服务,透明处理所有 git 交互。在 sandbox 内部,git client 使用一个专门构建的 scoped credential 向该服务认证。代理会验证这个凭据和 git 交互内容(例如确保它只 push 到配置的分支),然后在把请求发送到 GitHub 前附加正确的认证 token。

开始使用

新的 sandboxed bash tool 和 Claude Code on the web 为使用 Claude 进行工程工作的开发者,在安全性和生产力上都带来了明显提升。

要开始使用这些工具:

• 运行 `claude --sandbox`,并查看 [our docs](TODO) 了解如何配置这个 sandbox。

• 前往 claude.com/code 试用 Claude Code on the web。

或者,如果你正在构建自己的 agents,可以查看我们开源的 sandboxing 代码,并考虑把它集成到你的工作中。期待看到你构建的内容。

要开始使用 Claude Code,你需要设置 API key,并遵循提供的文档。这会指导你完成发起请求和有效处理响应的过程。

从聊天机器人到自动化内容生成,Claude 的多功能性让它对企业和开发者都很有价值。

用户反馈在 Claude 的改进中起着关键作用。通过分析用户交互,开发者可以发现需要增强的领域,并实现必要的改进。

来源:https://claude.com/blog/beyond-permission-prompts-making-claude-code-more-secure-and-autonomous