核心隐私数据对于企业或用户尤其重要,因此有必要找到一种方法来防止各种隐私数据泄漏。以下陈令将所有人解释如何从以下方面脱敏,这也需要注意日常发展:
本文的上下文如下:
我经常遇到这种情况:项目的配置文件中总是有一些敏感信息,例如URL,用户名,数据源的密码...一旦公开此信息,整个数据库就会泄漏,因此如何做到这一点,因此如何做到这一点,所以如何做到这一点,因此如何做,如何做,然后如何做因此如何做到这一点,所以如何做到这一点,所以如何做到这一点,所以如何做到这一点,所以如何做到这一点如何做?隐藏这些配置?
过去,加密配置是手动写入配置文件中的,然后在提取时手动解密。当然,这是一个可以解决问题的想法。
今天,我引入了一个解决方案,以允许您无需感知即可实施配置文件的加密和解密。使用开源插件-in:。项目地址如下:
使用方法非常简单。仅需一个集成弹簧靴即可。
在配置文件中添加一个加密的秘密(任何),如下:
当然,将秘密直接放在配置文件中也是不安全的。当项目启动时,我们可以配置秘密。命令如下:
此步骤是加密配置清晰文本,代码如下:
上面的代码在数据源的URL,用户和密码的清晰文本中加密。输出结果如下:
默认情况下使用软件包。目前的数据源配置如下:
上面的配置使用默认值,当然,我们可以根据自己的要求进行更改,只需要在配置文件中更改,如下:
然后,目前必须使用配置来解密,如下所示:
Jasypt也有许多高级用法。例如,您可以自己配置加密算法。对于特定操作,您可以参考GitHub上的文档。
接口返回值中的一些敏感数据也需要脱敏,例如身份证号码,手机号码,地址等。通常的手段是使用数据的隐藏部分,当然,您也可以根据需要自定义。
对家说,如何优雅地实现它?有两个实施方案,如下:
第一个解决方案在Internet上具有许多实施方法。下面的第二个演示将在下面进行演示,以整合杰克逊。
您需要自定义脱敏注射。一旦标记了属性,就可以执行相应的脱敏化,如下:
对于项目需求,自定义不同字段的脱敏规则,例如手机号码中间的数字数量,如下:
以上仅是该部分的一部分,并且根据其自己的项目要求进行了专门配置。
以下将是重要的实施。注释注释的领域是沙漠的,意识到如下:
使用注释和解决方案进行数据脱敏,代码如下:
以上四个步骤已经完成了杰克逊脱敏的注释。以下是为测试编写的。代码如下:
调用接口以查看数据是否正常脱敏如下:
实施数据脱敏的方法有很多。关键是哪个更合适,更优雅...
上面提到了配置文件和接口返回值的数据脱敏。现在它始终是日志截断。在项目中无法避免打印的日志,并且将明确打印出一些敏感数据。目前,您需要过滤这些敏感数据(ID卡,编号,用户名.....)。
如果您不了解有关春季靴子日志的问题,则可以阅读我的上一篇文章:春季引导第三枚炸弹,一篇文章带您如何配置日志?文件?本质
以下日志用作日志4J2日志的示例。另一个日志框架通常相同。
Spring Boot的默认日志框架是logBack,但是我们可以切换到log4j2,依赖性如下:
log4j2的日志配置非常简单。只需在文件夹下创建一个新的配置文件。内容如下:
关于每个节点的配置方式以及含义是什么,我上方的两篇文章中都有详细的介绍。
上图中的配置不会实现数据敏感性。这是正常的配置。
步骤2中的配置使用日志的格式,然后我们还可以自定义模式layout以实现日志的徽标和脱敏化。
模式layout类的班级图的继承如下:
从上面的图中可以清楚地看出,模式layout继承了一个抽象类,因此您只需要继承此抽象类即可。
1.创建custompatternlayout,继承摘要摘要摘要stringlayout
代码显示如下:
您的意思是一些细节,例如这两个评论?如何通过log4j2实现自定义插件,这是不再详细介绍的。这不是本文的重点。如果您有兴趣,可以查看正式文档。
2.自定义自己的脱敏规则
以上代码是脱敏规则的静态类。我直接在静态类中配置。实际项目可以设置为配置文件。代码如下:
在上述两个步骤之后,已完成自定义,并且将重写以下配置文件。
实际上,这里的修改非常简单。原始配置文件直接用于格式化日志,因此您只需要替换默认节点为:如下所示:
只需在整个游戏中直接替换它。此时,此配置文件已修改。
在步骤3中,自定义了脱敏规则静态类,该类定义了三个名称,身份证和数字的脱敏规则,如下:
让我们证明这三个规则是否可以正确地脱敏并直接使用日志打印。代码如下:
控制台打印的日志如下:
9哦,成功,太容易了!
有许多原木的沙漠化计划。陈仅引入常用。那些有兴趣的人可以学习。
本文介绍了三个维度的隐私数据脱敏实施计划。代码并不容易。快点,喜欢它!交叉剖面
源代码已由GitHub上传,并且需要回复关键字的公共号码APE技术列。
作者:代码猿技术专栏