共计 1216 个字符,预计需要花费 4 分钟才能阅读完成。
download:Vue3+Nuxt3 打造 SSR 网站利用,0 到 1 实现服务端渲染
0、问题背景
用 Spring Boot
框架的小伙伴应该都晓得,Spring Boot
有个次要的 applicaiton 配置文件,那就会波及到敏感配置信息,比方各种中间件的连贯用户名明码信息、以及各种第三方的 KEY、密钥等。
这种敏感信息如果间接放在配置文件中必定是不平安的,甚至在很多行 业及领 域(比方:领取畛域)都是不合规的,所以须要爱护 Spring Boot 中的敏感配置信息。
所以,你还在让你的 Spring Boot 零碎裸奔吗?如果是,那无妨看看本文中栈长分享的 4 种办法,让你的零碎不再裸奔!
1、配置核心(反对主动解密)
我感觉还得看大家的架构状况,如果应用了外置的第三方配置核心(反对主动解密的那种),就能够把所有的配置信息存储在配置核心,比方 Spring Cloud
生态中的配置核心,那么能够应用自带的加、解密机制爱护敏感信息:
spring:
datasource:
username: '{cipher}t1s293294187a31f35dea15e8bafaf7774532xxcc20d6d6dd0dfa5ae753d6836'
须要加密的内容以 {cipher} 结尾标识,并留神要应用单引号包起来,具体的细节能够参考《Spring Cloud 配置核心内容加密》这篇文章,Spring Boot
配置文件就只存储一些无关紧要的配置。
大家用的哪款配置核心呢?领取配置加解密吗?欢送分享!
如果没有用到配置核心呢?
比如说传统的 Spring Boot
的 MVC 我的项目,所有的代码、配置都简直在同一个我的项目中,Spring Boot 中的外围配置文件就是 application.yml
`(.properties)` 文件,那要怎么爱护敏感配置信息呢?持续往下看!
2、数据库机制
能够把所有配置信息存储到数据库,系统启动的时候全副加载进内存。存储的时候,敏感信息以对称加密算法进行加密存储,而后加载的时候主动解密到内存。
这是最传统的配置管理办法,其实你也能够了解为一个原始的、繁难的配置核心,只是性能不那么弱小而已,因为当初很多配置核心就是把配置放在数据库中进行存储,而后提供一系列的配置管理性能。
这里的数据库能够是关系数据库(MySQL、Oracle)、内存数据库(Redis、Zookeeper)等,这是广泛用的比拟多的中间件技术。
3、自定义加解密机制
这时候也要看应用的水平,如果只是简略的数 据库连 接池信息,那么能够思考应用现有零碎中的对称加密算法,再联合连接池数据源类实现自定义加解密机制,比方咱们能够模拟 Spring Cloud
加密机制:
先用零碎已有的对称加密算法对数据库连贯信息加密:
spring:
datasource:
username: '{cipher}t1s293294187a31f35dea15e8bafaf7774532xxcc20d6d6dd0dfa5ae753d6836'