Claude 代码
管理权限和安全
了解Claude Code的权限系统、工具访问和安全保障。
Claude Code使用分层权限系统来平衡功能和安全性:
工具类型 | 示例 | 需要批准 | ”是的,不再询问”行为 |
---|---|---|---|
只读 | 文件读取、LS、Grep | 否 | 不适用 |
Bash命令 | Shell执行 | 是 | 对每个项目目录和命令永久生效 |
文件修改 | 编辑/写入文件 | 是 | 直到会话结束 |
Claude可用的工具
Claude Code拥有一系列强大的工具,帮助它理解和修改您的代码库:
工具 | 描述 | 需要权限 |
---|---|---|
Agent | 运行子代理处理复杂的多步骤任务 | 否 |
Bash | 在您的环境中执行shell命令 | 是 |
Glob | 基于模式匹配查找文件 | 否 |
Grep | 在文件内容中搜索模式 | 否 |
LS | 列出文件和目录 | 否 |
Read | 读取文件内容 | 否 |
Edit | 对特定文件进行有针对性的编辑 | 是 |
Write | 创建或覆盖文件 | 是 |
NotebookEdit | 修改Jupyter笔记本单元格 | 是 |
NotebookRead | 读取并显示Jupyter笔记本内容 | 否 |
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配置和开发工具