Claude Code 安全指南:权限管理与数据保护
| 入门指南

Claude Code 安全指南:权限管理与数据保护

Claude Code 直接在你的终端运行,能读写文件、执行命令。安全问题必须重视。

权限模式

Claude Code 提供三种权限模式,通过 --permission-mode 参数或 /permissions 命令切换:

default 模式(推荐)

默认模式,每次敏感操作都需要确认:

  • 写入/编辑文件前询问
  • 执行 bash 命令前询问
  • 访问网络前询问
claude

plan 模式

只读模式,Claude 只能读取文件和搜索,不能修改任何内容:

claude --permission-mode plan

适合:

  • 代码审查
  • 架构分析
  • 学习理解代码库

bypassPermissions 模式

跳过所有确认,Claude 可以自由执行操作:

claude --permission-mode bypassPermissions

警告:仅在完全信任的环境中使用,比如隔离的开发容器。

敏感文件保护

.claudeignore 文件

在项目根目录创建 .claudeignore,阻止 Claude 访问敏感文件:

# 环境变量和密钥
.env
.env.*
*.key
*.pem
id_rsa*
credentials.json

# 敏感配置
config/secrets/
.aws/
.ssh/

# 大文件(避免上下文浪费)
node_modules/
*.log
dist/
build/

.gitignore 联动

Claude Code 默认尊重 .gitignore,被忽略的文件不会被读取。

网络访问控制

Claude Code 的网络访问通过工具控制:

  • WebFetch:获取网页内容
  • WebSearch:搜索网络

在 default 模式下,每次网络请求都需要确认。

如果不需要网络功能,可以在 CLAUDE.md 中声明:

# 安全约束
- 禁止使用 WebFetch 和 WebSearch 工具
- 所有操作限制在本地文件系统

Bash 命令安全

危险命令拦截

Claude Code 会自动拦截危险命令:

  • rm -rf /
  • sudo 相关命令
  • 修改系统文件的命令

命令白名单

在 CLAUDE.md 中限制允许的命令:

# Bash 命令限制
只允许以下命令:
- git(版本控制)
- npm/yarn/pnpm(包管理)
- node/python(运行脚本)
- curl(仅限 localhost)

禁止:
- 任何 sudo 命令
- 直接操作 /etc、/var 等系统目录
- 安装全局包

Hooks 安全

使用 Hooks 时注意:

  1. 验证输入:Hook 脚本要验证 stdin 输入
  2. 最小权限:Hook 脚本只做必要的事
  3. 避免敏感操作:不要在 Hook 中处理密钥
{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Write|Edit",
        "hooks": [
          {
            "type": "command",
            "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/check-secrets.sh"
          }
        ]
      }
    ]
  }
}

检查敏感信息的 Hook 示例:

#!/bin/bash
input=$(cat)
content=$(echo "$input" | jq -r '.tool_input.content // empty')

# 检查是否包含敏感模式
if echo "$content" | grep -qE '(api[_-]?key|secret|password)\s*[:=]\s*["\x27]?[a-zA-Z0-9]'; then
  echo "检测到可能的敏感信息" >&2
  exit 2
fi

exit 0

会话隔离

每个 Claude Code 会话是独立的:

  • 不同项目的会话互不影响
  • 会话结束后临时数据清除
  • 使用 --resume 恢复会话时会加载历史上下文

最佳实践

开发环境

  1. 使用 default 模式,保持确认提示
  2. 配置 .claudeignore 保护敏感文件
  3. 定期检查 Claude 的操作历史

CI/CD 环境

  1. 使用 plan 模式进行代码审查
  2. 限制网络访问
  3. 在隔离容器中运行

团队协作

  1. .claude/settings.json 中统一安全配置
  2. 将安全规则写入 CLAUDE.md 并提交到仓库
  3. 代码审查时关注 Claude 生成的代码是否有安全漏洞

安全检查清单

  • 配置了 .claudeignore 保护敏感文件
  • CLAUDE.md 中声明了安全约束
  • 使用 default 模式而非 bypassPermissions
  • 敏感操作前仔细检查 Claude 的计划
  • 定期审查 Claude 生成的代码
  • CI/CD 中使用受限权限运行

安全是持续的过程,不是一次性配置。保持警惕,定期审查。