首页 教程 常见问题

3.12 沙箱安全(Sandboxing)

概述

沙箱为 Claude Code 的 Bash 工具提供 OS 级文件系统和网络隔离,减少频繁权限提示的需求,同时防止提示注入和恶意命令。

工作原理

文件系统隔离

网络隔离

前提条件

配置选项

settings.json 配置

{
  "sandbox": {
    "filesystem": {
      "allowWrite": ["/tmp/build-output"],   // 允许写入的额外路径
      "denyRead": ["/etc/passwd"],           // 拒绝读取的路径
      "denyWrite": ["/bin", "/usr/bin"],      // 拒绝写入的路径
      "allowRead": ["/var/log"]              // 在拒绝区域内重新允许读取
    },
    "network": {
      "allowedDomains": ["github.com", "api.example.com"],
      "deniedDomains": ["evil-site.com"]
    },
    "excludedCommands": ["docker *"],         // 强制在沙箱外执行的命令
    "allowUnsandboxedCommands": false,        // 禁用沙箱失败时的逃生口
    "failIfUnavailable": true                // 沙箱不可用时硬性失败
  }
}

安全优势

重要限制

自动模式

在 Auto-accept 权限模式下,沙箱命令自动运行而不提示。无法沙箱化的命令回退到常规权限流程。

开源

沙箱运行时作为 npx @anthropic-ai/sandbox-runtime 发布,可用于其他 Agent 项目。