Springboot 日志、配置文件、接口数据如何脱敏?老鸟们都是这样玩的!
扫描二维码
随时随地手机看文章
一、前言
核心隐私数据无论对于企业还是用户来说尤其重要,因此要想办法杜绝各种隐私数据的泄漏。下面陈某带大家从以下三个方面讲解一下隐私数据如何脱敏,也是日常开发中需要注意的:- 配置文件数据脱敏
- 接口返回数据脱敏
- 日志文件数据脱敏
二、配置文件如何脱敏?
经常会遇到这样一种情况:项目的配置文件中总有一些敏感信息,比如数据源的url、用户名、密码....这些信息一旦被暴露那么整个数据库都将会被泄漏,那么如何将这些配置隐藏呢?以前都是手动将加密之后的配置写入到配置文件中,提取的时候再手动解密,当然这是一种思路,也能解决问题,但是每次都要手动加密、解密不觉得麻烦吗?今天介绍一种方案,让你在无感知的情况下实现配置文件的加密、解密。利用一款开源插件:jasypt-spring-boot
。项目地址如下:https://github.com/ulisesbocchio/jasypt-spring-boot
使用方法很简单,整合Spring Boot 只需要添加一个starter
。1. 添加依赖
<dependency>
<groupId>com.github.ulisesbocchiogroupId>
<artifactId>jasypt-spring-boot-starterartifactId>
<version>3.0.3version>
dependency>
2. 配置秘钥
在配置文件中添加一个加密的秘钥(任意),如下:jasypt:
encryptor:
password: Y6M9fAJQdU7jNp5MW
当然将秘钥直接放在配置文件中也是不安全的,我们可以在项目启动的时候配置秘钥,命令如下:java -jar xxx.jar -Djasypt.encryptor.password=Y6M9fAJQdU7jNp5MW
3. 生成加密后的数据
这一步骤是将配置明文进行加密,代码如下:@SpringBootTest
@RunWith(SpringRunner.class)
public class SpringbootJasyptApplicationTests {
/**
* 注入加密方法
*/
@Autowired
private StringEncryptor encryptor;
/**
* 手动生成密文,此处演示了url,user,password
*/
@Test
public void encrypt() {
String url = encryptor.encrypt("jdbc\\:mysql\\://127.0.0.1\\:3306/test?useUnicode\\=true