跳到主要内容

策略限制

源码: 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/ 目录)


会话策略(运行时动态)

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


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