【发布时间】:2010-11-19 14:47:31
【问题描述】:
这可能是重复的 (question),但我正在寻找 .NET 最佳实践。
如何安全地存储数据库连接字符串、用户名和密码等?在大多数情况下,加密的 app.config 是否最好?
我还希望能够在配置文件中设置密码,然后在应用程序启动后立即对其进行加密。 (我不是在寻求解决方案,因为我之前已经解决了这个问题,我只是在寻找最佳实践)。
我也对您有很好经验的替代解决方案感兴趣。
【问题讨论】:
这可能是重复的 (question),但我正在寻找 .NET 最佳实践。
如何安全地存储数据库连接字符串、用户名和密码等?在大多数情况下,加密的 app.config 是否最好?
我还希望能够在配置文件中设置密码,然后在应用程序启动后立即对其进行加密。 (我不是在寻求解决方案,因为我之前已经解决了这个问题,我只是在寻找最佳实践)。
我也对您有很好经验的替代解决方案感兴趣。
【问题讨论】:
我认为最好的做法是尽可能使用集成安全性,原因有两个……这是最容易管理的解决方案,也是最容易做到正确的解决方案。
如果由于某种原因您无法使用集成安全性,而您必须使用用户名和密码对其进行加密,使用类似Enterprise Library 的配置管理器来加密您的 web.config 部分。
【讨论】:
关于保护连接字符串,我们应该了解以下几点: http://msdn.microsoft.com/en-us/library/89211k9b.aspx
在我看来,存储它们的最佳方式(结合了灵活性和安全性的方式)是 “使用受保护的配置加密配置文件部分”: http://msdn.microsoft.com/en-us/library/ms254494.aspx
【讨论】:
那就是 web.config。如果担心安全性,您可以加密连接字符串。
【讨论】:
我最近发现一个有用的东西是微软的单点登录服务。如果需要使用 SQL 身份验证,可以将实际凭据存储在加密数据库中。
【讨论】: