Claude Code采用严格最小权限架构,默认只读,任何文件编辑或命令执行均需用户授权,有效防止提示注入和命令注入。启用/sandbox后可实现文件系统和网络隔离;使用/permissions可审计当前权限设置;对常用安全命令设置白名单能减少审批疲劳。注意非交互模式(-p)下信任验证被禁用,在家目录启动时信任不会持久保存。

Claude Code 安全机制:权限架构、沙箱与提示注入防护

安全基础

Claude Code 将你的代码安全置于首位,其开发遵循 Anthropic 综合安全计划。SOC 2 Type 2 报告、ISO 27001 证书等资源见 Anthropic Trust Center

权限架构

Claude Code 默认采用严格的只读权限。当需要额外操作(编辑文件、运行测试、执行命令)时,会请求显式权限。用户可以选择一次性批准操作,或允许自动执行。

例如,Bash 命令在执行前必须获得批准,这让你直接控制。用户和组织可直接配置权限。

详细权限配置见 权限

内置保护机制

为降低 Agent 系统的风险:

  • 沙箱 Bash 工具:通过 /sandbox 启用文件系统和网络隔离,在保持安全的同时减少权限提示。定义 Claude Code 可自主操作的边界。
  • 写入访问限制:Claude Code 只能写入启动目录及其子目录——没有显式权限时不能修改父目录文件。虽然可以读取工作目录外的文件(访问系统库和依赖项),但写操作严格限定在项目范围内,形成清晰的安全边界。
  • 权限疲劳缓解:支持按用户、代码库或组织将常用安全命令加入白名单。
  • 接受编辑模式:自动批准文件编辑以及工作目录下固定的一组文件系统 Bash 命令(如 mkdirtouchrmmvcpsed)。其他 Bash 命令和超出范围路径仍需提示。

用户责任

Claude Code 仅拥有你授予的权限。批准前,你有责任审查建议的代码和命令是否安全。

防止提示注入攻击

提示注入是一种攻击者通过插入恶意文本来覆盖或操纵 AI 助手指令的技术。Claude Code 包含以下防护:

核心保护

  • 权限系统:敏感操作需要显式批准。
  • 上下文感知分析:通过分析完整请求检测潜在有害指令。
  • 输入清理:处理用户输入以防止命令注入。
  • 命令黑名单:默认阻止从网络获取任意内容的高危命令,如 curlwget。显式允许时,注意 权限模式限制

隐私保护

  • 敏感信息保留期有限(见 隐私中心)。
  • 用户会话数据访问受限。
  • 用户可控制数据训练偏好。消费用户可随时更改 隐私设置

更多信息见 商业服务条款(Team、Enterprise、API 用户)或 消费者条款(Free、Pro、Max 用户)及 隐私政策

其他保护措施

  • 网络请求批准:发起网络请求的工具默认需要用户批准。
  • 隔离上下文窗口:Web fetch 使用独立的上下文窗口,避免注入潜在恶意提示。
  • 信任验证:首次运行代码库或新 MCP 服务器需要信任验证。
    • 注意:非交互模式(-p 标志)下信任验证被禁用。例外是 --worktree,它仍要求目录已接受信任。
    • 注意:在家目录直接启动时,信任接受仅对当前会话有效,不写入磁盘,因此每次启动都会重新提示。没有持久化该设置的选项。请从项目子目录启动,信任会按目录保存。
  • 命令注入检测:可疑 Bash 命令即使之前已加入白名单,也需要手动批准。
  • 失败关闭匹配:未匹配的命令默认要求手动批准。
  • 自然语言描述:复杂 Bash 命令附带解释,便于用户理解。
  • 安全凭证存储:API Key 和 Token 加密保存。见 凭证管理

Windows WebDAV 安全风险:在 Windows 上运行 Claude Code 时,建议不要启用 WebDAV 或允许 Claude Code 访问可能包含 WebDAV 子目录的路径(如 \\*)。WebDAV 已被微软弃用 存在安全风险。启用 WebDAV 可能使 Claude Code 绕过权限系统触发对远程主机的网络请求。

与不可信内容配合的最佳实践

  1. 批准前审查建议的命令。
  2. 避免将不可信内容直接管道给 Claude。
  3. 验证对关键文件的改动。
  4. 使用虚拟机(VM)运行脚本和工具调用,尤其是与外部 Web 服务交互时。
  5. 发现可疑行为用 /feedback 报告。

尽管这些保护措施显著降低了风险,但没有任何系统能完全免疫所有攻击。使用任何 AI 工具时都应保持良好安全实践。

MCP 安全

Claude Code 允许用户配置 Model Context Protocol(MCP)服务器。允许的 MCP 服务器列表在源码中配置,是工程师检入源码控制的一部分。

我们鼓励编写自己的 MCP 服务器,或使用信任的提供商的 MCP 服务器。你可以配置 Claude Code 对 MCP 服务器的权限。Anthropic 在将连接器加入 Anthropic Directory 前会依据 评审标准 进行审查,但不会安全审计或管理任何 MCP 服务器。

IDE 安全

在 IDE 中运行 Claude Code 的安全与隐私信息见 VS Code 安全与隐私

云端执行安全

使用 Claude Code on the web 时有额外的安全控制:

  • 隔离虚拟机:每个云端会话在 Anthropic 管理的隔离 VM 中运行。
  • 网络访问控制:默认限制网络访问,可配置为禁用或只允许特定域名。
  • 凭证保护:认证通过安全代理处理,使用沙箱内作用域凭证,然后转换为实际 GitHub 认证 Token。
  • 分支限制:Git push 操作限制在当前工作分支。
  • 审计日志:云端环境中的所有操作均记录日志以便合规和审计。
  • 自动清理:会话结束后云端环境自动终止。

云端执行详情见 Claude Code on the web

Remote Control 会话不同:Web 界面连接到本地机器上运行的 Claude Code 进程。所有代码执行和文件访问保持本地,与任何本地 Claude Code 会话流动的相同数据通过 TLS 经过 Anthropic API。不涉及云端 VM 或沙箱。连接使用多个短生命周期、范围受限的凭证,每个凭证独立过期,以限制单个凭证被攻破的影响范围。

安全最佳实践

处理敏感代码

  • 批准前审查所有建议改动。
  • 对敏感仓库使用项目级权限设置。
  • 考虑使用 dev containers 进行额外隔离。
  • 定期使用 /permissions 审计权限设置。

团队安全

  • 使用 托管设置 强制实施组织标准。
  • 通过版本控制共享批准的权限配置。
  • 对团队成员进行安全最佳实践培训。
  • 通过 OpenTelemetry 指标 监控 Claude Code 使用。
  • 使用 ConfigChange hooks 审计或阻止会话中的设置变更。

报告安全问题

发现 Claude Code 安全漏洞时:

  1. 不要公开披露。
  2. 通过 HackerOne 计划 报告。
  3. 包含详细复现步骤。
  4. 公开披露前留出时间让我们处理问题。

相关资源

常见问题

Claude Code 如何防止提示注入攻击?

Claude Code 通过权限系统(敏感操作需显式批准)、上下文感知分析(检测有害指令)、输入清理(防止命令注入)和命令黑名单(默认阻止 curl/wget)提供核心防护。此外,Web fetch 使用隔离的上下文窗口,避免恶意内容污染主会话。

怎么配置 Claude Code 的权限模式?

使用 /permissions 命令可查看和调节当前会话权限。通过 CLAUDE.md 文件和设置文件可配置项目级或组织级权限,包括白名单常用安全命令。详细配置见 权限

在云端运行 Claude Code 是否安全?

是。每个云端会话运行在隔离的虚拟机中,网络访问默认受限,GitHub Token 通过安全代理处理而不进入沙箱,Git push 限制在当前分支,所有操作记录审计日志,会话结束后环境自动清理。Remote Control 会话则保持本地执行,通过 TLS 传输数据。