保持生产登录凭据安全

时间:2010-10-20 09:20:20

标签: java

我们拥有存储在某个配置文件中的数据库的登录凭据,该配置文件已检入codebase存储库。通常我们会在开发环境中拥有开发凭据,并且会签入。在生产中部署时,可以手动将其替换为生产登录凭据。

我想知道保持安全的最佳做法是什么。我们做得对吗?

3 个答案:

答案 0 :(得分:2)

是的,确保您的生产凭据不受源代码管理。

锁定生产用户帐户,以便只有该用户可以查看/更改配置文件,例如在unix上,权限应该是

-rw -------

即使是它所在的目录也应该禁止未经授权的用户使用。

限制对生产服务器的访问:尽可能少的用户帐户,审核,物理访问限制,例如锁定的服务器机房等。

编辑:为了澄清,我建议保持凭证不受源代码控制的理由通常是,特别是在大型公司中,开发团队不允许知道/使用生产凭证。在某些地方,开发人员甚至登录到生产数据库可能会被解雇。特别是如果他们打破了一些东西!

此外,其他团队/部门的开发人员可能拥有源代码控制访问权限,这可能会严重影响生产数据库。当然,如果你是一个3人开发组织,这不是一个问题。

答案 1 :(得分:1)

考虑使用可使用JNDI访问的DataSource,而不是让应用创建自己的数据库连接。这会完全从应用程序中删除凭据,并将问题转移到如何保护JNDI中的DataSource?这通常使问题更容易解决。例如,如果您的应用程序部署到的应用程序服务器上配置了DataSource,那么它的安全性已经被用于保护应用服务器的身份验证系统保护。

答案 2 :(得分:0)

如果您的存储库是内部的,并且不与任何不能访问这些凭据的人共享,那么您的方法就可以了。

然而,事情可能会发生变化,在这些问题上,偏执是值得的。我通常做的是在源代码控制中保留一个空的框架配置文件(具有不同的扩展名或其他东西),然后让源代码控制忽略正确的配置文件。这样,在从源代码控制部署新版本时,它不会被覆盖。

此外,Brians建议尽可能限制事情是好建议!