如何安全存储数据库连接详细信息

时间:2009-05-05 09:23:55

标签: database security

在需要打开数据库连接的应用程序中,必须将用户名/密码详细信息发送到数据库。存储和使用这些数据最安全的方式是什么?

4 个答案:

答案 0 :(得分:3)

确切的方法取决于环境,但通常,您将凭据存储在只能由运行应用程序的用户读取的位置。例如,在Windows上,您可以将凭据存储在注册表中受ACL保护的位置,以便只有该用户才能读取它。 (可选)您可以使用DPAPI加密数据,以便进一步保护数据。在Unix中,您可以将其存储在受chmod保护的文件中(并且可选地加密),以便只有应用程序可以读取它。

答案 1 :(得分:2)

这取决于您正在使用的数据库。对于Microsoft SQL Server,您可以加密配置中的数据库连接字符串,也可以使用集成安全性,使用您要连接的应用程序的标识连接到数据库。

答案 2 :(得分:2)

优秀的问题。
这是我们努力解决的一个问题 - 并提出了各种方法。

第一个答案是与1800 INFORMATION的建议一致:

将其放在只能由运行您的应用程序的用户ID读取的区域。

我认为你不会得到比这更好的全面解决方案。

我们玩弄(并拒绝)的其他方法:

  • 将其保存在加密文件中
    • 这只有在攻击者无法访问您的代码才能看到加密工作原理的情况下才有效,所以大部分时间都不太好。
  • 将其保存在数据库中,并要求人员登录以启动应用程序
    • 这是有效的,只要你能够让一个真实的人一直启动应用程序
  • 依赖于内置的安全设备,例如.NET中的安全设备(请参阅rwwilden的回答)。
    • 这是一个很好的解决方案,如果你是,例如,一家微软商店。

答案 3 :(得分:0)

不在您的源代码中,而是在您的应用程序读取的单独文件中。然后使用系统安全性使该文件只能由应用程序用户

读取