如何保护EF连接字符串?

时间:2013-02-22 19:35:37

标签: entity-framework security

我在独立的WPF客户端中使用Entity Framework 5。如何配置实体框架,以便连接字符串中的数据库密码不是内存中的纯文本?

1 个答案:

答案 0 :(得分:1)

有两种主要方法可以处理数据库的连接字符串安全性。

正如@ MUG4N和@BNicoll正确指出的那样,您可以加密app.config(或web.config)中的连接字符串,这将无法轻松读取设置。但是,在这种情况下,实际的用户名和密码仍然存储在机器上,这意味着通过一些工作,您可以检索明文密码。

在我看来,更好的解决方案是使用运行应用程序的帐户直接使用SQL进行身份验证。这意味着在auth周期中从不使用用户名/密码,而是使用基于NTLM或kerberos令牌的身份验证,这种身份验证更加安全,并且不需要存储可解密密码。

要使用此方法,您需要确保您在域中,并为运行该应用程序的用户帐户授予访问数据库的权限。然后,您需要使用Integrated Security=SSPI;

替换连接字符串中的用户名/密码

不幸的是,此方法要求您在Windows域中运行,这可能不适合您的情况。

查看security in connection strings

上的MS白皮书