在 Claude Code 中,Claude 与你并肩编写、测试和调试代码,浏览你的代码库、编辑多个文件,并运行命令来验证自己的工作。让 Claude 拥有如此多的代码库和文件访问权限可能带来风险,尤其是在遭遇提示词注入(prompt injection)的情况下。
为了解决这一问题,我们在 Claude Code 中推出了两项基于沙箱技术的新功能。它们都旨在为开发者提供更安全的工作环境,同时让 Claude 能更自主地运行,并减少权限提示。在我们的内部使用中,我们发现沙箱可以安全地将权限提示减少 84%。通过划定 Claude 可以自由工作的明确边界,这两项功能既提升了安全性,也增强了自主性。
保障 Claude Code 用户的安全
Claude Code 采用基于权限的模型:默认情况下是只读的,这意味着在进行修改或运行任何命令之前,它都会先请求许可。也有一些例外:我们会自动放行 echo 或 cat 这类安全命令,但大多数操作仍需要明确批准。
不断点击“批准”会拖慢开发节奏,还可能导致“批准疲劳”:用户可能不再仔细留意自己批准的内容,从而使开发变得更不安全。
为此,我们为 Claude Code 推出了沙箱功能。
沙箱:更安全、更自主的方式
沙箱预先划定边界,Claude 可以在边界内更自由地工作,而不必对每个操作都请求许可。启用沙箱后,权限提示会大幅减少,安全性也随之提高。
我们的沙箱方案建立在操作系统级功能之上,以实现两道边界:
- 文件系统隔离,确保 Claude 只能访问或修改特定目录。这对于防止遭受提示词注入的 Claude 修改敏感系统文件尤为重要。
- 网络隔离,确保 Claude 只能连接到已批准的服务器。这可以防止遭受提示词注入的 Claude 泄露敏感信息或下载恶意软件。
值得注意的是,有效的沙箱需要同时具备文件系统隔离和网络隔离。没有网络隔离,被攻陷的智能体可能会窃取 SSH 密钥等敏感文件;没有文件系统隔离,被攻陷的智能体则可能轻易逃出沙箱并获得网络访问权限。正是同时采用这两种技术,我们才能为 Claude Code 用户提供更安全、更快速的智能体体验。
Claude Code 中的两项新沙箱功能
沙箱化的 bash 工具:无需权限提示即可安全执行 bash
我们推出了全新的沙箱运行时,目前以研究预览形式提供 beta 版本。它让你能精确定义智能体可以访问哪些目录和网络主机,而无需承担启动和管理容器的开销。它可用于对任意进程、智能体和 MCP 服务器进行沙箱隔离,同时也以开源研究预览的形式提供。
在 Claude Code 中,我们用这个运行时对 bash 工具进行沙箱隔离,让 Claude 在你设定的限制范围内运行命令。在安全的沙箱内,Claude 可以更自主地运行,并在无需权限提示的情况下安全地执行命令。如果 Claude 试图访问沙箱之外的内容,你会立即收到通知,并可以选择是否允许。
我们基于 Linux bubblewrap 和 MacOS seatbelt 等操作系统级原语来构建,在操作系统层面强制执行这些限制。它们覆盖的不仅是 Claude Code 的直接交互,还包括该命令所衍生的任何脚本、程序或子进程。如上所述,这个沙箱同时强制执行以下两点:
- 文件系统隔离:允许对当前工作目录进行读写,但禁止修改其之外的任何文件。
- 网络隔离:仅允许通过一个 unix domain socket 访问互联网,该套接字连接到运行在沙箱之外的代理服务器。该代理服务器对进程可连接的域名施加限制,并处理用户对新请求域名的确认。如果你希望进一步提高安全性,我们还支持自定义该代理,对出站流量强制执行任意规则。
这两个组件都是可配置的:你可以轻松选择允许或禁止特定的文件路径或域名。

沙箱确保即使提示词注入成功,其影响也会被完全隔离,不会危及用户的整体安全。这样一来,即便 Claude Code 被攻陷,也无法窃取你的 SSH 密钥,或向攻击者的服务器回传数据。
要开始使用这项功能,请在 Claude Code 中运行 /sandbox,并查看我们安全模型的更多技术细节。
为了让其他团队更容易构建更安全的智能体,我们已将这项功能开源。我们认为,其他团队应当考虑为自己的智能体采用这项技术,以提升其安全态势。
Claude Code on the web:在云端安全地运行 Claude Code
今天,我们还发布了 Claude Code on the web,让用户可以在云端的隔离沙箱中运行 Claude Code。Claude Code on the web 将每个 Claude Code 会话放在独立的沙箱中执行,它在其中可以安全可靠地完整访问自己的服务器。我们在设计这个沙箱时,确保敏感凭据(如 git 凭据或签名密钥)永远不会与 Claude Code 一同位于沙箱内。这样一来,即便沙箱中运行的代码被攻陷,用户也不会受到进一步的伤害。
Claude Code on the web 使用一个自定义代理服务,透明地处理所有 git 交互。在沙箱内,git 客户端使用专门构建的限定范围凭据向该服务认证。代理会验证这个凭据和 git 交互的内容(例如确保只推送到已配置的分支),然后附上正确的认证令牌,再将请求发送到 GitHub。

开始使用
我们全新的沙箱化 bash 工具和 Claude Code on the web,为使用 Claude 开展工程工作的开发者在安全性和生产力两方面都带来了显著提升。
要开始使用这些工具:
- 在 Claude 中运行 `/sandbox`,并查看我们的文档了解如何配置该沙箱。
- 前往 claude.com/code 试用 Claude Code on the web。
或者,如果你正在构建自己的智能体,请查看我们开源的沙箱代码,并考虑将其集成到你的工作中。我们期待看到你的作品。
想进一步了解 Claude Code on the web,请阅读我们的发布博客文章。
致谢
本文由 David Dworken 和 Oliver Weller-Davies 撰写,Meaghan Choi、Catherine Wu、Molly Vorwerck、Alex Isken、Kier Bradwell 和 Kevin Garcia 参与贡献
