金融用户敏感数据如何优雅地实现脱敏?
日志脱敏之后,志脱则替无法根据信息快速定位怎么办?
经过了这两篇文章之后,敏性我们对日志脱敏应该有了一定的基于理解。
但是插件超正实际项目中,我们遇到的实现情况往往更加复杂:
种种原因,基于导致使用注解的插件超正方式耗费大量的时间。但是实现一般给我们改造的时间是有限的。
那么,有没有一种方法可以统一对敏感信息进行脱敏处理呢?
答案是有的,我们可以基于 log4j2 实现自己的脱敏策略,统一实现日志的脱敏。
我们可以基于 log4j2 RewritePolicy 统一使用脱敏策略。
本项目自 V1.2.0 添加对应支持,后续将提升对应的可拓展性。
说明:如果使用 slf4j 接口,实现为 log4j2 时也是支持的。
引入核心脱敏包。
<dependency> <groupId>com.github.houbb</groupId> <artifactId>sensitive-log4j2</artifactId> <version>1.2.1</version></dependency>
其他的一般项目中也有,如 log4j2 包:
<dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>${ log4j2.version}</version></dependency><dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>${ log4j2.version}</version></dependency>
例子如下:
<?xml version="1.0" encoding="UTF-8"?><Configuration status="WARN" packages = "com.github.houbb.sensitive.log4j2.rewrite"> <Appenders> <Console name="Console" target="SYSTEM_OUT"> </Console> <Rewrite name="rewrite"> <AppenderRef ref="Console"/> <SensitiveRewritePolicy/> </Rewrite> </Appenders> <Loggers> <Root level="DEBUG"> <AppenderRef ref="rewrite" /> </Root> </Loggers></Configuration>
几个步骤:
正常的日志打印:
private static final String TEST_LOG = "mobile:13088887777; bankCard:6217004470007335024, email:mahuateng@qq.com, amount:123.00, " + "IdNo:340110199801016666, name1:李明, name2:李晓明, name3:李泽明天, name4:山东小栗旬" + ", birthday:20220517, GPS:120.882222, IPV4:127.0.0.1, address:中国上海市徐汇区888号;";logger.info(TEST_LOG);
自动脱敏效果如下:
mobile:130****7777|9FC4D36D63D2B6DC5AE1297544FBC5A2; bankCard:6217(责任编辑:知识)
云南腾冲市共有10家国有融资平台公司 为全市经济发展做出了巨大贡献
银保监会: 督促银行机构筑牢内控合规“防火墙” 夯实高质量发展根基