使用Jaspyt加密Spring属性文件时,环境变量真的是一个存储主密码的安全位置吗?

我在Java项目中使用Jaspyt和Spring 3.我目前将数据库连接属性存储在属性文件中.用户名和密码是纯文本,所以我一直在使用Jaspyt的EncryptablePropertyPlaceholderConfigurer.

文档和教程建议将用于解密的主密码存储在环境变量中.这真的比在属性文件中存储纯文本值更安全吗?如果有人破坏了这个盒子,那么主密码是不是在(1)环境变量或(2)服务器启动脚本中可见?我想你可以手动设置环境变量并在服务器启动后取消设置它,但是手动过程似乎无法管理.

我只是偏执狂吗?有没有一种方法可以保护您的连接用户名和密码?

解决方法:

存储明文密码绝不是一个安全的过程.在任何情况下,接管服务器的攻击者都可以访问您的密码.
如果手动输入不是一个选项(像往常一样),则只能为团队的一部分隐藏密码.如果您不想公开数据库密码,请使用JNDI数据库连接.这使得密码仅对应用程序服务器管理员可见.

上一篇:Class.forName()用法详解


下一篇:准备面试二