WinForm应用程序中的Secure ConnectionString

时间:2011-08-18 11:18:50

标签: winforms security encryption connection-string

如何在WinForm应用程序中保护ConnectionString?

3 个答案:

答案 0 :(得分:19)

你做不到。虽然您可以加密app.config文件中的连接字符串,但应用程序需要能够对其进行解密,因此始终可以检索未加密的连接字符串,尤其是对于托管应用程序(可能不适用于典型的最终用户,但任何熟练的开发人员都可以这样做。)

解决方法是不依赖 security by obscurity 。使用Windows用户帐户连接到数据库时,使用 Windows Integrated Security ,并为用户提供数据库中的最小权限。

通常情况仍然不够,因为当最终用户直接连接到数据库时,很难保护数据库(通常是因为您需要行级安全性)。为此,您需要拒绝访问表和视图,并完全回退到存储过程。

然而,更好的方法是防止桌面应用程序直接与数据库通信;使用Web服务作为中间层。在这种情况下,您可以完全控制安全性,并且可以将连接字符串安全地存储在(Web)服务器上。

答案 1 :(得分:1)

答案 2 :(得分:0)

这里有很多问题......

Encrypting sections and-or settings in an App.config file that will be redistributed

似乎从来没有一个有限的答案......它似乎是“每个人都属于自己的”类型场景之一......使用最适合你情况的东西。