我在独立的 WPF 客户端中使用 Entity Framework 5。如何配置实体框架,以使连接字符串中的数据库密码不在内存中的纯文本中?
问问题
3063 次
1 回答
1
处理数据库的连接字符串安全性有两种主要方法。
正如@MUG4N 和@BNicoll 正确指出的那样,您可以加密app.config(或web.config)中的连接字符串,这将避免轻松读取设置。但是,在这种情况下,实际的用户名和密码仍然存储在机器上,这意味着您可以通过一些工作来检索明文密码。
在我看来,更好的解决方案是使用运行应用程序的帐户直接使用 SQL 进行身份验证。这意味着用户名/密码永远不会在身份验证周期中使用,而是使用基于 NTLM 或 kerberos 令牌的身份验证,这更加安全并且不需要存储可解密的密码。
要使用此方法,您需要确保您在域中,并授予运行应用程序的用户帐户访问数据库的权限。然后,您需要将连接字符串中的用户名/密码替换为Integrated Security=SSPI;
不幸的是,这种方法要求您在 Windows 域中运行,这可能不适合您的情况。
查看有关连接字符串安全性的MS 白皮书
于 2013-02-22T22:53:15.640 回答