免费的云服务器试用数据库密码配置项都不加密?心也太大了吧!

云服务器可以用来干嘛 先看一份典型的配置文件... 省略 ...配置MySQL数据库连接spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:m···

云服务器可以用来干嘛

先看一份典型的配置文件

... 省略 ...配置MySQL数据库连接spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://121.196.xxx.xxx:3306/user?useUnicode=true&characterEncoding=utf-8 spring.datasource.username=root spring.datasource.password=123456配置Redis缓存连接redis.host=121.196.xxx.xxx redis.port=6379 redis.password=111111配置SMS短信服务连接ali.sms.access_key_id=2zHmLdxAes7Bbe2w ali.sms.access_key_secret=bImWdv6iy0him8ly ... 省略 ...

这是节选自某个典型的Spring Boot项目的application.properties配置文件。

嘘...偷偷告诉我,是不是很多小伙伴也都是这么写的?

这乍一看没啥问题,很多人会觉得理所当然。包括我自己也看到过很多的项目(包括很多开源项目)是这么写的。

但仔细一琢磨,发现:

是的!很多项目的配置文件里,包括数据库密码、缓存密码、亦或是一些第三方服务的Key都是直接配在里面,没有做任何加密处理!

有人会说这个配置文件反正是我自己的,有啥风险?

这个嘛,之前倒是看到过一个例子,一个程序员把自己公司的项目代码上传到了自己的GitHub仓库里了,结果配置文件忘了处理,导致公司数据库泄露,关键问题是,这个公司还是个酒店管理公司,因此后果可想而知了...

换个角度想,假如当时那个项目的配置文件里,所有重要信息都经过了加密,那这一幕大概率就不会发生了。所以,即使是项目的配置文件,重要的信息也得加密!

哪些信息要加密呢?

一般来说,项目配置文件里,所有涉及信息安全的配置项(或字段)都应该做处理,典型的比如:

用到的数据库、缓存的密码用到的中间件、消息队列的密码用到的各种第三方服务的Access_Key其他第三方服务的通信信息......等等

总而言之,关键字段都应该保护起来,最起码不能用明文直接写在配置文件里!

如何加密配置项呢?

方法非常简单,几个步骤即可完成,先来演示一个最简版本:

1、首先建立一个基础的Spring Boot工程

这就不再赘述了

2、引入jasypt-spring-boot加密组件

通过jasypt-spring-boot这个开箱即用的加密组件来引入Jasypt这个强大的加密库

<dependency><groupId>com.github.ulisesbocchio

您好:云优数据云计算 www.yunyoushuju.cn 2核2G6M最低19.9元/月 欢迎开机

发表评论

评论列表
未查询到任何数据!