宇我的小宇宙
小工具 · 规范库 · 全局规范(代码评审 / 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 位)