突然想到的服务器上项目代码中明文账户密码的加密问题

2020-08-17 10:45:17 +08:00
 phpxiaowangzi

如题,之前有想过这个问题,今天无意中有想到了,现在很多配置数据库账户密码的明文都存放在项目代码中,这种有没有什么加密措施,总是感觉这样很不妥,各位大佬怎么说?

4170 次点击
所在节点    程序员
25 条回复
nicevar
2020-08-17 10:51:59 +08:00
如果进行安全配置了没有什么不妥,这些东西都需要 root 权限才能看到,你都让人拿到 root 权限了,还在乎这个密码被人看到?
emeab
2020-08-17 10:56:10 +08:00
担心那么多 你要加密肯定要解密吧 解密不还要密钥 你密钥不也要放机子上? 难道你还要再开一个机子获取密钥吗 那密钥传输安全吗 那又要上 tls 加密传输密钥 那还要防中间人
coolcoffee
2020-08-17 11:03:01 +08:00
如果我有你服务器文件任意读写权限,我直接把你程序代码引入的地方加个 log 不就可以看到了。

正确的做法应该是敏感信息用环境变量,然后启动的时候把环境变量参数传进去。 这样开发人员就无法知晓生产环境的配置
xdbytes1
2020-08-17 11:28:35 +08:00
把密码写在系统环境变量中,代码运行时候自动读取系统变量中的密码就可以了
37Y37
2020-08-17 11:32:46 +08:00
配置文件中都加密,我们的方案 https://blog.ops-coffee.cn/s/dpgqiel4wcmgdqh1aeg4gw
xuanbg
2020-08-17 11:35:05 +08:00
运行时又不能加密,配置文件加密毫无意义。
@37Y37
594duck
2020-08-17 11:46:24 +08:00
JAVA 最简单的是引用以下这个,Jenkins 各环境打包的时候直接就把加密好的值 打进去就好,启动的时候把盐给输一下。
http://www.jasypt.org/

权限隔离,人员隔离就好。运维不用去管 DBA 和其它第三方 API 的 KEY 是什么,只管根据人家给的加密后的配置打包就好。
594duck
2020-08-17 11:47:37 +08:00
还有就是用像携程的阿波罗那样的中心统一配置中心
learningman
2020-08-17 12:06:28 +08:00
只要有个 xx git 传错地方,你们就该炸了。。。
crclz
2020-08-17 16:00:26 +08:00
放在环境变量里面,因为不想让代码储存服务提供商、构建服务提供商知道你的数据库密码。
Eirxxx69
2020-08-17 17:13:44 +08:00
我们公司是将项目里的配置文件放在单独的项目上,开发最多只能看到测试环境的配置文件,线上的配置文件没权限看的
zjsxwc
2020-08-17 17:24:57 +08:00
从系统环境变量里获取密码,代码和项目都不需要密码,只有运维知道密码。
dallaslu
2020-08-17 17:54:19 +08:00
代码里不应该有关键密码呀,都放在外部配置文件里呗
wangritian
2020-08-17 18:04:46 +08:00
代码仓库放开发用配置,开发环境的数据库 /免费额度的 apikey/开发用证书,全暴露也没损失,线上环境用环境变量或文件替换掉,比如 k8s 的 configMap
x86
2020-08-17 18:07:25 +08:00
服务器地址写的 localhost 咋啦
walkfish
2020-08-17 18:12:01 +08:00
我们是采用阿波罗配置中心来解决这个问题
Cookieeeeee
2020-08-17 19:48:08 +08:00
环境变量
LokiSharp
2020-08-17 20:51:56 +08:00
不是配在 env 里么
24bit
2020-08-17 20:54:40 +08:00
写在环境变量里面或者放到配置中心读取
Jooooooooo
2020-08-17 22:59:52 +08:00
你需要 kms

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/698862

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX