安全是 Claude Code 设计的核心原则之一。从权限系统到 Prompt 注入防护,从沙箱隔离到企业合规,本文深度解析 Claude Code 的完整安全架构。
安全设计理念
Claude Code 遵循三个核心安全原则:
- 最小权限默认:默认只读权限,额外操作需要显式授权
- 透明与可控:执行命令前显示并等待确认,用户始终保持控制权
- 纵深防御:多层安全机制叠加,单点失效不会导致全面突破
Anthropoic 的安全认证:SOC 2 Type 2、ISO 27001。更多安全资源见 Anthropic Trust Center。
权限架构
基础权限模型
Claude Code 使用严格的权限分级:
| 操作类型 | 默认行为 | 可配置为 |
|---|---|---|
| 读取文件 | 允许(工作目录及子目录) | 可限制或扩展范围 |
| 写入文件 | 需要确认 | 可允许或拒绝特定路径 |
| 执行命令 | 需要确认 | 可添加到白名单 |
| 网络请求 | 需要确认 | 可允许或拒绝特定域 |
写入权限边界
Claude Code 只能向启动它的目录及子目录写入文件——无法修改父目录的文件。虽然 Claude 可以读取工作目录外的文件(用于访问系统库和依赖),写入操作严格限制在项目范围内,形成清晰的安全边界。
权限白名单配置
{
"permissions": {
"allow": [
"Bash(npm run lint)",
"Bash(npm run test *)",
"Bash(git *)",
"Read(~/.zshrc)",
"Write(src/**)"
],
"deny": [
"Bash(curl *)",
"Bash(wget *)",
"Bash(sudo *)",
"Bash(rm -rf *)",
"Read(./.env)",
"Read(./secrets/**)"
]
}
}权限疲劳缓解
频繁的权限提示会导致「确认疲劳」,用户开始无脑点「允许」。Claude Code 通过以下机制缓解:
- 按用户白名单:个人常用命令一次性授权
- 按代码库白名单:项目级常用命令授权,与团队共享
- 按组织白名单:IT 部门统一配置安全策略
- Accept Edits 模式:批量接受文件编辑,仅保留有副作用命令的确认
Prompt 注入防护
Prompt 注入是攻击者通过在内容中嵌入恶意指令,操纵 AI 助手的攻击技术。Claude Code 包含多层防护:
核心防护机制
- 权限系统:敏感操作需要显式批准
- 上下文感知分析:通过分析完整请求检测潜在有害指令
- 输入净化:处理用户输入,防止命令注入
- 命令黑名单:默认阻止
curl、wget等可从 web 获取任意内容的命令
网络请求安全
{
"permissions": {
"deny": [
"Bash(curl *)",
"Bash(wget *)",
"Bash(nc *)"
]
}
}默认阻止这些命令,需要时在许可列表中精确允许:
{
"permissions": {
"allow": [
"Bash(curl -sL https://api.internal.company.com *)"
]
}
}隔离上下文窗口
Web 抓取使用独立的上下文窗口,防止网页中的恶意 Prompt 注入主对话上下文。
可疑命令检测
即使命令已在白名单中,如果 Claude 检测到可疑的注入模式,仍会要求手动批准。失败关闭(Fail-closed)匹配原则:未匹配的命令默认需要手动批准。
沙箱隔离
/sandbox 命令启用沙箱模式,为 bash 命令提供文件系统和网络隔离:
/sandbox沙箱功能:
- 文件系统隔离:限制 Claude 可访问的文件路径
- 网络隔离:阻止未授权的网络出站流量
- 降低权限提示:在定义的边界内,Claude 可以更自主地工作而无需频繁确认
适用场景:
- 运行来自第三方的脚本
- 测试未知代码
- 与外部 Web 服务交互
MCP 安全
Model Context Protocol(MCP)服务器可扩展 Claude Code 的工具能力,但也带来安全风险。
安全配置原则
// .mcp.json 或 ~/.claude.json
{
"mcpServers": {
"trusted-tool": {
"command": "npx",
"args": ["-y", "@your-company/mcp-server"]
}
}
}黄金准则:
- 只使用来自可信来源的 MCP 服务器
- 优先使用自己编写的 MCP 服务器
- 避免使用名称与知名工具相似的 MCP 服务器
- 定期审查已配置的 MCP 服务器列表
- 了解每个 MCP 服务器有权访问的内容和操作
首次运行信任验证
Claude Code 对以下情况要求信任验证:
- 在新代码库首次运行
- 添加新的 MCP 服务器
注意:使用 -p 标志的非交互模式下,信任验证被禁用。
凭证安全
加密存储
API key 和令牌经过加密存储。详见 凭证管理文档。
避免凭证泄露
// 禁止读取敏感文件
{
"permissions": {
"deny": [
"Read(./.env)",
"Read(./.env.*)",
"Read(./secrets/**)",
"Read(**/*.pem)",
"Read(**/*.key)"
]
}
}Windows 安全注意事项
在 Windows 上运行 Claude Code 时,建议不要启用 WebDAV 或允许访问 \\* 路径。WebDAV 已被微软废弃并存在安全风险,启用可能允许 Claude Code 触发到远程主机的网络请求,绕过权限系统。
使用不可信内容的最佳实践
- 审查命令后再批准:不要无脑点确认
- 避免直接管道不可信内容到 Claude:
cat malicious.txt | claude -p这类操作有风险 - 验证对关键文件的修改:特别是配置文件、认证代码
- 使用虚拟机运行脚本:特别是与外部 Web 服务交互时
- 通过
/bug报告可疑行为
隐私保护
- 数据保留期限制:敏感信息有限定保留期
- 用户会话数据访问受限
- 用户控制数据训练偏好:消费者用户可随时在 claude.ai 设置中修改隐私设置
总结
Claude Code 的安全架构从权限系统、Prompt 注入防护、沙箱隔离到 MCP 安全形成完整的纵深防御体系。理解这些机制并正确配置权限白名单,能在充分发挥 AI 能力的同时保持对系统的安全控制。
来源:Claude Code 官方文档 - Security 原文作者:Anthropic Team