保护连接字符串

时间:2010-03-04 05:03:39

标签: .net winforms visual-studio-2008 security app-config

  

可能重复:
  How to encrypt connection string in WinForms 1.1 app.config?

在app.config文件中为已部署的winforms应用程序保护连接字符串信息的最佳方法是什么?

  
    

reference

  

3 个答案:

答案 0 :(得分:3)

最安全的方式(假设Windows客户端和受支持的数据库服务器)使用integrated authentication,并避免使用连接字符串分发密码。

Data Source=servername;Initial Catalog=dbname;Integrated Security=SSPI;

每个用户都需要访问数据库服务器。我发现最简单的方法是使用活动目录组 - 在数据库服务器上为组提供适当的访问权限,并根据需要在该组中添加和删除用户。

答案 1 :(得分:3)

手动或使用随EntLib分发的配置工具对其进行加密。

this should get you started.

编辑:当然,正如其他人所说,使用集成安全性是最好的选择,但我知道有时候这不是一种选择。

在这些情况下,您需要做一些额外的工作。我以前做过,知道它有效。我将链接到一篇文章,该文章描述了使用Windows应用程序执行此操作的挑战以及最终的工作解决方案。

警告:点击此链接前戴上一些太阳镜。

http://guy.dotnet-expertise.com/PermaLink,guid,b3850894-3a8e-4b0a-aa52-5fa1d1216377.aspx

答案 2 :(得分:0)

这实际上取决于您希望某人获得连接字符串的方式。如果您只担心应用程序的用户(不是开发人员),只需加密连接字符串并将加密的字符串放在应用程序中的常量中。在运行时使用密钥解密用于常量的加密字符串,然后在部署代码之前对其进行模糊处理。这个傻瓜证明了吗?当然不是,但它可能会阻止99.9%的人获取你的连接字符串。他们必须首先反汇编代码并获取加密字符串,然后才能访问密钥。如果您担心开发人员,那么只要他们无法访问生产中的源代码以及可能用于加密连接字符串的密钥,上述解决方案就可以正常工作。当然有人必须输入连接信息,但只允许该人访问它。希望这会有所帮助。