【发布时间】:2014-06-05 21:41:37
【问题描述】:
我的公司有一个 Java Web 应用程序,其数据库密码存储在属性文件中,我们需要保护密码。我用谷歌搜索并找到了 Jasypt 解决方案,但在我看来,这并不能真正解决问题,因为这需要另一个密码才能提供给应用程序,而我不知道如何保护该密码。
Jasypt 的主要建议是将密码作为环境变量输入,这意味着在最好的情况下,我会像这样启动应用程序:
./myApp -D password=myPasswordDontHackPlz
这是不安全的,因为您可以在这样做时看到密码
ps -ef | grep myApp
我们也不能在需要密码时(通过网络或其他方式)输入密码,因为它本质上决定何时需要密码,而且它经常需要密码。
是否有任何解决方案,或者我是否要求一些不存在的神奇解决方案?我不喜欢 Jasypt,因为在我看来它本质上只是一种混淆,而且我不是在混淆之后我在这里寻找真正的安全性。
【问题讨论】:
-
“环境变量”的意思是
password=myPasswordDontHackPlz ./myApp,不是吗?我认为,这应该将其排除在命令行之外。 mosh.mit.edu/#build-instructions 报告“在 GNU/Linux、OS X 和 FreeBSD 上”“其他用户无法读取正在运行的进程的环境变量”。
标签: java security properties configuration