【问题标题】:Secure ConnectionString in WinForm ApplicationsWinForm 应用程序中的安全连接字符串
【发布时间】:2011-10-29 17:04:49
【问题描述】:

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

【问题讨论】:

  • 这可以使用完整的使用C#代码加密孔部分link

标签: winforms security encryption connection-string


【解决方案1】:

你不能。尽管您可以在 app.config 文件中加密连接字符串,但应用程序需要能够解密它,因此,始终可以检索未加密的连接字符串,尤其是对于托管应用程序(可能不适合您的典型目的)用户,但任何熟练的开发人员或黑客都可以做到这一点,甚至最终用户也可以通过谷歌搜索一下)。

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

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

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

【讨论】:

  • +1 表示“你不能”。托管应用程序没有绝对的安全性。你可以通过一些东西来加强安全性,比如包括一个 web 服务层和将用户与数据库隔离,但它并不完美。您必须从应用程序的概念开始考虑到这一点。
  • @Steven 指向“Windows 集成安全性”的链接已损坏。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-02-06
  • 2015-04-12
  • 1970-01-01
  • 2015-08-19
  • 1970-01-01
  • 2020-08-08
  • 1970-01-01
相关资源
最近更新 更多