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包含几项防范这些攻击的保障措施:

  • 权限系统:敏感操作需要明确批准
  • 上下文感知分析:通过分析完整请求来检测潜在有害指令
  • 输入净化:通过处理用户输入防止命令注入
  • 命令黑名单:阻止从网络获取任意内容的风险命令,如curlwget

处理不受信任内容的最佳实践

  1. 批准前审查建议的命令
  2. 避免将不受信任的内容直接传输给Claude
  3. 验证对关键文件的建议更改
  4. 使用/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步开始使用

  1. 安装VS Code和Remote - Containers扩展
  2. 克隆Claude Code参考实现仓库
  3. 在VS Code中打开仓库
  4. 当提示时,点击”在容器中重新打开”(或使用命令面板:Cmd+Shift+P → “Remote-Containers: 在容器中重新打开”)

配置细节

devcontainer设置由三个主要组件组成:

安全特性

容器通过其防火墙配置实现多层安全方法:

  • 精确访问控制:仅限制出站连接到白名单域(npm注册表、GitHub、Anthropic API等)
  • 默认拒绝策略:阻止所有其他外部网络访问
  • 启动验证:容器初始化时验证防火墙规则
  • 隔离:创建与主系统分离的安全开发环境

自定义选项

devcontainer配置设计为可适应您的需求:

  • 根据您的工作流添加或删除VS Code扩展
  • 为不同硬件环境修改资源分配
  • 调整网络访问权限
  • 自定义shell配置和开发工具