跳到主要内容

策略限制

源码: policy.ts | config/policies.ts

1. 策略系统​

策略(Policy)是 Claude Code 的最高层级安全约束,控制整体行为模式。

Config (用户设置)
│
↓
Policy (策略层)
│
├── NetworkPolicy # 网络访问策略
├── FilePolicy # 文件操作策略
├── ExecutionPolicy # 命令执行策略
└── DataPolicy # 数据处理策略

2. 网络策略​

interface NetworkPolicy {
// 是否允许出站请求
allowOutbound: boolean

// 允许访问的域名白名单
allowedDomains: string[]

// 禁止访问的域名
blockedDomains: string[]

// 请求超时
timeout: number
}

默认策略:

  • WebSearch: 允许(默认启用)
  • WebFetch: 允许但受限
  • MCP: 仅允许配置的服务器

3. 文件策略​

interface FilePolicy {
// 最大单文件大小(字节)
maxFileSize: number

// 允许的文件类型
allowedExtensions: string[]

// 禁止的文件类型
blockedExtensions: string[]

// 是否允许写入
allowWrite: boolean

// 是否允许删除
allowDelete: boolean
}

默认限制:

  • 禁止操作 .env, .git, 密钥文件
  • 禁止删除操作在 node_modules 目录
  • 单文件读取限制 1MB

4. 命令执行策略​

interface ExecutionPolicy {
// 最大执行时间(毫秒)
maxExecutionTime: number

// 最大输出大小(字节)
maxOutputSize: number

// 禁止的命令前缀
bannedPrefixes: string[]

// 允许的工作目录
allowedWorkingDirs: string[]
}

5. 数据处理策略​

interface DataPolicy {
// 是否允许发送文件内容到 API
allowFileContentInAPI: boolean

// 敏感信息过滤
sensitivePatterns: RegExp[]

// 最大上下文长度
maxContextLength: number
}

敏感信息自动过滤:

  • API 密钥
  • 密码
  • Token
  • 数据库连接字符串

6. 策略配置​

// ~/.claude/policies.json
{
"network": {
"allowOutbound": true,
"blockedDomains": ["*.malicious.com"]
},
"file": {
"maxFileSize": 1048576,
"blockedExtensions": [".exe", ".bin"],
"allowDelete": false
},
"execution": {
"maxExecutionTime": 30000,
"bannedPrefixes": ["sudo", "rm -rf /"]
}
}

7. 策略优先级​

系统默认策略(不可覆盖)
│
↓
组织策略(企业部署)
│
↓
用户策略(~/.claude/)
│
↓
项目策略(.claude/ 目录)
│
↓
会话策略(运行时动态)

优先级:系统 > 组织 > 用户 > 项目 > 会话,上层策略不能被下层覆盖。


上一节:路径验证 | 下一节:对比与附录