小工具 · 规范库 · 全局规范(代码评审 / Git / 安全 / 语言)
安全:禁止泄露内网信息与敏感凭据
rules/00-global/security-anti-leak.md
安全:禁止泄露内网信息与敏感凭据
适用范围
最高优先级,覆盖所有项目。任何其他规则与本规则冲突时,以本规则为准。
红线(绝对禁止)
以下信息不得出现在:代码示例、注释、commit message、文档、AI 对话外发内容、日志、错误信息、构建产物中:
内网 IP / 主机
192.168.110.35(GitLab 代码仓库)192.168.110.36(Oracle 数据库,端口 1521,实例 his)192.168.110.37(Redis / Swagger 发布服务)192.168.110.72(Maven 私服 nexus,端口 8081)192.168.110.100(Eureka 注册中心相关)- 以及任何
192.168.110./10./172.16-31.*段的内网地址
凭据 / 连接串
- 数据库账号密码:
his/boren2018(见 HisParent/pom.xml) - Oracle 连接串:
jdbc:oracle:thin:@192.168.110.36:1521/his - Redis 连接:
192.168.110.37:6379 - Maven 私服地址与凭据
其它
- 任何
application.yml/application.properties/pom.xml中的真实密码、token、secret - 测试号、真实病人身份证号、医保卡号、手机号
处理规则
写示例 / 文档 / 注释时
- 内网 IP → 用占位符
<DB_HOST>、<REDIS_HOST>、<GIT_HOST>,或example.internal - 密码 → 用
<PASSWORD>/your-password-here,禁止用真实值"举例" - 连接串 → 用
jdbc:oracle:thin:@<host>:1521/<sid>
Do:
spring:
datasource:
url: jdbc:oracle:thin:@<DB_HOST>:1521/his
username: <DB_USER>
password: <DB_PASSWORD>
Don't:
spring:
datasource:
url: jdbc:oracle:thin:@192.168.110.36:1521/his # ❌ 真实内网IP
username: his # ❌ 真实账号
password: boren2018 # ❌ 真实密码
改动配置类代码时
- 如果发现配置文件里硬编码了真实密码/IP,不要"顺手"把它搬到示例或注释里;应提示用户改用环境变量或配置中心。
- 涉及密钥管理的改造,优先走加密配置(如 jasypt)或外部化,而非新增硬编码。
当被要求"把项目配置发出来"时
- 默认拒绝输出含真实凭据的配置;应脱敏后再给,并说明已脱敏。
检查清单(提交/外发前自检)
- [ ] 全文搜索
192.168.110、boren、密码关键字,确认无残留 - [ ] 示例连接串、账号、密码均为占位符
- [ ] 日志中不打印完整身份证号、医保卡号、银行卡号(脱敏或仅末 4 位)