你在哪里存储数据库密码?

时间:2011-02-03 22:19:18

标签: java security password-protection

从代码中获取数据库和其他服务密码的方法有哪些?我已经阅读了有关使用每个服务器属性文件的信息,但是当您拥有大量服务器时,它很难维护。我还看到了使用CI的构建过程“注入”密码的解决方案,但这使得很难即时更新密码。

有助于缩小答案范围的一些要求......

  1. 如果发生安全漏洞,密码应易于更改和传播。
  2. 密码不能出现在代码中(由于第1点)
  3. 对于人来说,获取密码的纯文本版本
  4. 应该是“非常重要的”
  5. 应该在Web应用程序和独立应用程序中运行良好
  6. 从应用程序开发人员的角度来看,易于采用
  7. 一些不错的选择包括不引入单点故障,快速开发时间和易于理解。

    这与this question的精神相似,但强调可维护性,更侧重于服务器端案例。

3 个答案:

答案 0 :(得分:6)

您可以将其以纯文本格式存储在受保护目录中的文件中,该文件只能由运行该应用程序的帐户读取。如果是Web应用程序,则应始终将密码存储在Web根文件夹之外。

答案 1 :(得分:1)

如果使用数据库连接池,则通常在Java Web容器中管理用户名,密码和其他数据库详细信息,并将其作为数据源呈现给Java代码。您只需要一个数据库连接,而不必知道任何这些细节。

答案 2 :(得分:0)

除了将其存储在Web根目录外的文本文件中之外,如何使用加密?对于大多数语言来说,使用加密方法非常简单,虽然可能不是绝对必要的,以防止网络攻击,但是对于可能访问系统上文件的其他人来说更加困难。此外,一些混淆,将文件伪装成可能被忽略的无聊名称的其他东西,使得即使在他们有物理访问服务器的情况下,也不太可能找到它。