WinForm应用程序中的Secure ConnectionString

Hos*_*nia 6 security encryption connection-string winforms

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

Ste*_*ven 19

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

解决这个问题的方法是不要依靠默默无闻的安全性.使用Windows用户帐户连接到数据库时使用Windows Integrated Security,并为用户提供数据库中的最小权限.

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

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

  • 为"你不能"+1.托管应用程序没有绝对的安全性.您可以使用某些内容来强制执行安全性,例如包括Web服务层和将用户与数据库隔离但但它并不完美.您必须从应用程序的概念中考虑到这一点. (4认同)