
























Read工具读取对应文件,读取到的完整文件内容会通过 HTTPS 上传到 Anthropic 云端服务器做 AI 计算。帮我看config/application.yml),强制读取上传(人为泄密)| 配置 | 类型 | 原理 | 缺点 | 安全等级 |
|---|---|---|---|---|
.claudeignore |
软过滤 | AI 自动遍历目录时看不见这个文件,不会主动扫描读取 | 你手动指定路径读取,依然能读到、上传 | ⭐⭐ |
.claude/settings.json permissions.deny |
硬过滤 | 直接拦截Read读取工具,无论 AI 自动扫描还是你手动指定,一律拒绝访问,直接返回 ACCESS DENIED,完全不会上传内容 |
无绕过漏洞 | ⭐⭐⭐⭐⭐(官方强制推荐) |
.gitignore(基础,仅 Git 忽略,Claude 不完全遵守).claudeignore(软屏蔽,减少 AI 自动扫描敏感目录)permissions.deny(硬拦截,终极防泄密,阻断读取上传)
.env、.env.*、application-*.yml、application-*.properties
*.pem、*.key、*.crt、apollo配置文件、数据库连接配置
com/zto/fncm/** 你的财务核算核心包
com/zto/constant/** 业务枚举、财务属性常量
com/zto/mapper/fncm/** 财务数据库Mapper、SQL逻辑
com/zto/job/** 自动上报定时任务(你写的AutoLockTaskJob)
src/main/java/com/zto/security/**
src/main/java/com/zto/crypto/**
secrets/、credentials/、cert/
logs/**、target/**、build/**、*.log、*.out
node_modules/**、.cache/**、.idea/**、.vscode/**
sql/**、*.sql、dump/**、数据导出excel/csv
打开项目根文件夹,新建空白文件,命名 .claudeignore(注意前面有小数点)
# 密钥配置文件
.env
.env.*
**/application-*.yml
**/application-*.properties
**/*.pem
**/*.key
**/*.crt
# 财务核心业务包(你的项目核心涉密代码)
com/zto/fncm/**
com/zto/mapper/fncm/**
com/zto/job/**
com/zto/constant/BusinessAttribute.java
# 加密、签名、安全模块
**/security/**
**/crypto/**
secrets/
credentials/
cert/
# 打包、日志、缓存文件
target/**
logs/**
*.log
*.out
build/**
.cache/**
# IDE、Git无关文件
.idea/**
.vscode/**
.git/**
*.iml
# 数据库脚本
sql/**
*.sql
dump/**
AI 自动遍历项目找代码时,会直接跳过上面所有目录,不会主动读取;但你手动输入读取com/zto/fncm/xxx.java,AI 依旧能读,所以必须配硬过滤。
硬过滤文件路径:项目根目录/.claude/settings.json
.claude.claude 文件夹内新建 settings.json
{
"permissions": {
"allow": [
"Bash(git status)",
"Bash(git diff)",
"Bash(mvn compile)",
"Bash(mvn test)"
],
"ask": [],
"deny": [
// 禁止读取所有密钥配置
"Read(./.env)",
"Read(./.env.*)",
"Read(**/application-*.yml)",
"Read(**/application-*.properties)",
"Read(**/*.key)",
"Read(**/*.pem)",
// 禁止读取财务核心源码(你的业务涉密代码)
"Read(com/zto/fncm/**)",
"Read(com/zto/mapper/fncm/**)",
"Read(com/zto/job/**)",
"Read(com/zto/constant/BusinessAttribute.java)",
// 禁止加密、证书目录
"Read(**/security/**)",
"Read(**/crypto/**)",
"Read(./secrets/**)",
"Read(./credentials/**)",
// 禁止读取日志、数据库脚本
"Read(./logs/**)",
"Read(./sql/**)",
"Read(**/*.sql)",
// 拦截危险shell命令,防止AI读取本地ssh、apollo密钥
"Bash(cat ~/.ssh/**)",
"Bash(cat /etc/apollo/**)",
"Bash(rm -rf *)",
"Bash(curl *)",
"Bash(wget *)"
]
},
"respectGitignore": true
}
只要匹配deny里的Read(路径),任何读取操作直接拦截:
ACCESS DENIED,文件内容完全不会上传云端,彻底杜绝泄密。
在电脑用户主目录创建全局 .claudeignore 和全局 settings:
C:\Users\你的用户名\.claudeignore~/.claudeignore
全局配置会对电脑所有项目生效,新项目不用重复配置。
会弹出权限面板,切换到Deny标签,能看到你配置的所有禁止读取规则,代表配置加载成功。
读取 com/zto/fncm/mapper/FNCSumTaskMapper.java
AI 会直接提示无权读取该文件,不会上传代码,配置生效。
启动 Claude Code 时增加参数,关闭网页搜索、抓取:
claude --disallowedTools WebSearch,WebFetch
/disallowed-tools add WebSearch WebFetch
Windows:右键敏感文件夹 → 属性 → 安全,移除当前用户读取权限
Mac/Linux:给核心源码目录设置只读,AI 无法读取
chmod 0400 com/zto/fncm/ -R
即使配置全部生效,如果你手动复制财务核心代码粘贴到对话框,依然会上传云端,属于人为泄密,制度层面禁止。
.gitignore 就安全?.gitignore只管 Git 提交,Claude Code 会无视它读取文件,必须搭配.claudeignore+deny 硬拦截。.claudeignore 能彻底阻止读取?permissions.deny。
.claudeignore,复制上面模板;.claude/settings.json,写入 deny 硬拦截规则;/permissions 校验黑名单加载成功;此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。