{"id_card": {"pattern": "^.{6}(.*).{4}$", "replace": "********"},
 "phone": {"keep": [0, 3], "mask": 4}}

脱敏规则写死在三个服务的 if 分支里,新增港澳台通行证要改三处代码,上线两次还漏了一个服务。这类现象通常不是突然出现的,往前翻半天日志能看到苗头。

追下去是这么回事:规则和代码耦合,字段名、正则、掩码位置都散在业务逻辑里。没有统一的规则表,改一处不知道会影响哪些接口。

这次卡住的地方就在「脱敏规则集中配置」这一环,单独把它拎出来验证,别和其他改动混在同一次发布里。监控和日志的时间要对上,时区不一致会多绕很大一圈。

临时改动用注释写上日期和原因,过两周自己都记不清为什么这么写。动手前把原文件复制一份带时间戳,出问题立刻换回去,比现场分析快得多。

处理上按这个顺序:规则抽到配置中心 按字段名和类型匹配;服务启动时加载 支持热更新;规则版本化 支持灰度;每类证件加一条测试。

确认没问题再收工,新增证件类型只改配置 三个服务同时生效。

作者 9823189