如何在WinForm应用程序中保护ConnectionString?
答案 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
似乎从来没有一个有限的答案......它似乎是“每个人都属于自己的”类型场景之一......使用最适合你情况的东西。