目前是存放在配置文件之中。 因为代码会托管到第三方的 git 服务,所以线上数据库的配置文件跟本地是不一样的。需要手动上去替换。
首先感觉这种方式麻烦了点,因为是 tomcat 的项目,每次更新 war 包之后都得重做一遍。
另外目前并不知道用哪种加密存储密码好一点? 数据库密码是明文存储~
首先感觉这种方式麻烦了点,因为是 tomcat 的项目,每次更新 war 包之后都得重做一遍。
另外目前并不知道用哪种加密存储密码好一点? 数据库密码是明文存储~
1
3dwelcome Jun 18, 2016 via Android
最好是编译进二进制库里、我 mysql 数据库密码只是简单 round 一下、保证不是明文储存就可以了、防君子不防有心人。
|
2
bdbai Jun 18, 2016 via Android 用环境变量,代码动态读取。
|
3
SoloCompany Jun 18, 2016 via iPhone 配置和代码分开,代码托管给第三方,配置用自己维护的 vcs 或不 vcs
|
4
RangerWolf OP @3dwelcome 不太明确你的意思, 能举个例子吗? 谢谢
|
5
RangerWolf OP @bdbai 你这个方法感觉还不错~ 只不过加密部分呢? 还是明文存储吗?
|
6
jarlyyn Jun 18, 2016 via Android
不放心的话,不要用第三方 git 不就好了
|
7
bdbai Jun 18, 2016 via Android @RangerWolf 我用 Docker 部署应用就是这样处理的。只要环境变量不直接暴露出来,并保证外界无法直接接触数据库,基本上没问题。
密码最好不要明文,可以用一些相对耗时的加密算法保证即便被脱裤也不会泄露明文。关键词 bcrypt |
8
xiaoding Jun 18, 2016
配置文件里面放密文,程序启动的时候通过数据库连接池调用密钥管理系统解密。密钥管理系统负责管理加密算法以及密码的定时更新等等。
|
9
akira Jun 18, 2016
代码仓库里面不带配置就好了啊
|
10
caixiexin Jun 18, 2016 via Android 1. 用配置中心保存配置,程序每次启动从配置中心读
2. 用环境变量 3. 在生产的机子上构建 war ,维护一个分支包含生产配置文件,该分支只推送到生产的机子上 |
11
loading Jun 18, 2016 via Android
环境变量
|
12
RangerWolf OP @xiaoding 太高级了 有推荐的密码管理系统吗? 感谢!
|
13
RangerWolf OP @jarlyyn 因为密码而自己维护 git 托管总觉得性价比不太高 哈哈
|
14
RangerWolf OP @caixiexin 能介绍一下配置中心吗? 或者有什么推荐的服务或者开源程序,我直接去看看 谢谢
|
15
caixiexin Jun 19, 2016 via Android
@RangerWolf 简单点的话随便写个 web 服务就行,限制外网访问。
|
16
xiaoding Jun 19, 2016
|