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