为了账号安全,请及时绑定邮箱和手机立即绑定

我应该把凭证放在哪里:application.properties vs system env

我应该把凭证放在哪里:application.properties vs system env

慕的地10843 2021-11-17 10:36:29
在我的 Spring Boot 项目中,我应该将使用不同服务的凭据放在哪里,例如数据库或消息队列的用户名/密码,或者 JWT 密钥?我应该把它放在系统环境变量中吗?还是在 application.properties 中?哪个更安全?考虑到两者都是纯文本?对于 JWT 令牌,我在操作系统中使用以下命令在启动服务器之前更新值:export MONEYLIZER_JWT_SECRET_KEY=$(echo -n "somevalue" | openssl sha512 -hmac "somekey")所以它并不总是恒定的。application.properties没有给我这种灵活性。商业服务通常做什么?我应该在哪里保存凭据和设置?
查看完整描述

1 回答

?
胡说叔叔

TA贡献1804条经验 获得超8个赞

环境变量肯定比 application.properties 中的纯文本更安全

典型的基于 Sping 的部署会受到硬编码到代码存储库的应用程序属性文件中的配置的影响。这对于模块化您的代码库非常有用,因此可以将其传输到多个环境。但是,它确保您的代码还具有明文密码、api 密钥和其他不应在 VCS 存储库中或以任何方式分发的数据。

为了锁定代码库本身的安全性,我们决定将我们代码库中的所有密码、api 密钥和其他机密数据外部化。Spring 使这件事变得非常容易,它提供了在启动时将配置指定为环境变量或将外部应用程序属性文件指定给 init 脚本或 CLI 调用的选项。

博客


查看完整回答
反对 回复 2021-11-17
  • 1 回答
  • 0 关注
  • 101 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信