Claude 代码
管理权限和安全性
了解 Claude Code 的权限系统、工具访问和安全保护措施。
Claude Code 使用分层权限系统来平衡功能和安全性:
工具类型 | 示例 | 是否需要批准 | ”是的,不要再询问”的行为 |
---|---|---|---|
只读 | 文件读取、LS、Grep | 否 | 不适用 |
Bash 命令 | Shell 执行 | 是 | 对项目目录和命令永久生效 |
文件修改 | 编辑/写入文件 | 是 | 直到会话结束 |
Claude 可用的工具
Claude Code 可以访问一系列强大的工具,帮助它理解和修改您的代码库:
工具 | 描述 | 是否需要权限 |
---|---|---|
Agent | 运行子代理来处理复杂的多步骤任务 | 否 |
Bash | 在您的环境中执行 shell 命令 | 是 |
Glob | 基于模式匹配查找文件 | 否 |
Grep | 在文件内容中搜索模式 | 否 |
LS | 列出文件和目录 | 否 |
Read | 读取文件内容 | 否 |
Edit | 对特定文件进行定向编辑 | 是 |
Write | 创建或覆写文件 | 是 |
NotebookEdit | 修改 Jupyter notebook 单元格 | 是 |
NotebookRead | 读取和显示 Jupyter notebook 内容 | 否 |
WebFetch | 从指定 URL 获取内容 | 是 |
权限规则可以使用 /allowed-tools
或在权限设置中配置。
防止提示注入
提示注入是攻击者试图通过插入恶意文本来覆盖或操纵 AI 助手指令的技术。Claude Code 包含几个针对这些攻击的安全保护措施:
- 权限系统:敏感操作需要明确批准
- 上下文感知分析:通过分析完整请求来检测潜在的有害指令
- 输入净化:通过处理用户输入来防止命令注入
- 命令黑名单:阻止从网络获取任意内容的危险命令,如
curl
和wget
处理不可信内容的最佳实践:
- 在批准前审查建议的命令
- 避免将不可信内容直接传输给 Claude
- 验证对关键文件的建议更改
- 使用
/bug
报告可疑行为
虽然这些保护措施显著降低了风险,但没有系统能完全免疫所有攻击。在使用任何 AI 工具时, 始终保持良好的安全实践。
配置网络访问
Claude Code 需要访问:
- api.anthropic.com
- statsig.anthropic.com
- sentry.io
在容器化环境中使用 Claude Code 时,请将这些 URL 加入白名单。
开发容器参考实现
Claude Code 为需要一致、安全环境的团队提供了开发容器配置。这个预配置的 devcontainer 设置可以与 VS Code 的 Remote - Containers 扩展和类似工具无缝协作。
容器的增强安全措施(隔离和防火墙规则)允许您运行 claude --dangerously-skip-permissions
来绕过权限提示以进行无人值守操作。我们提供了一个可以根据您的需求定制的参考实现。
虽然 devcontainer 提供了实质性的保护,但没有系统能完全免疫所有攻击。始终保持良好的 安全实践并监控 Claude 的活动。
主要特性
- 生产就绪的 Node.js:基于 Node.js 20,包含基本开发依赖
- 安全设计:自定义防火墙仅限制对必要服务的网络访问
- 开发者友好工具:包含 git、带生产力增强功能的 ZSH、fzf 等
- 无缝 VS Code 集成:预配置的扩展和优化设置
- 会话持久性:在容器重启之间保留命令历史和配置
- 通用兼容:兼容 macOS、Windows 和 Linux 开发环境
4 步快速入门
- 安装 VS Code 和 Remote - Containers 扩展
- 克隆 Claude Code 参考实现仓库
- 在 VS Code 中打开仓库
- 当提示时,点击”在容器中重新打开”(或使用命令面板:Cmd+Shift+P → “Remote-Containers: 在容器中重新打开”)
配置详解
devcontainer 设置由三个主要组件组成:
- devcontainer.json:控制容器设置、扩展和卷挂载
- Dockerfile:定义容器镜像和安装工具
- init-firewall.sh:建立网络安全规则
安全特性
容器通过其防火墙配置实现多层安全方法:
- 精确访问控制:仅限制对白名单域名的出站连接(npm 注册表、GitHub、Anthropic API 等)
- 默认拒绝策略:阻止所有其他外部网络访问
- 启动验证:容器初始化时验证防火墙规则
- 隔离:创建与主系统分离的安全开发环境
自定义选项
devcontainer 配置设计为可适应您的需求:
- 根据您的工作流添加或删除 VS Code 扩展
- 针对不同硬件环境修改资源分配
- 调整网络访问权限
- 自定义 shell 配置和开发工具