如何在Windows窗体应用程序中隐藏连接字符串

时间:2012-07-12 21:24:01

标签: winforms

你们知道exe文件中的硬编码编码很容易通过某些软件(例如代码反射器)看到,我想知道我是如何隐藏我的连接字符串,其中包含sql server用户名和密码的信息以便连接到通过任何代码反射器看到Windows窗体应用程序中的数据库,这样除了我之外的任何其他人可能永远无法在未经我许可的情况下使用我的应用程序。

2 个答案:

答案 0 :(得分:3)

如评论所述,您最好使用集成安全性,但如果您使用混合模式身份验证定位SQL Server,则可以使用Data Protection API加密app.config中的连接字符串。这是一篇关于这个主题的精彩文章:

  

保护应用程序机密,例如数据库连接字符串   和密码,需要仔细考虑一些相关的   诸如数据的敏感程度,谁可以获得访问权等因素   它,如何平衡安全性,性能和可维护性等等   向前。本文解释了数据保护的基本原理和   比较了可用于保护的各种技术   应用程序设置。作者讨论了要避免的内容,例如   隐藏源代码中的密钥和使用本地安全机构。在   此外,他还介绍了一些有效的解决方案,如数据   保护API。

Safeguard Database Connection Strings and Other Sensitive Settings in Your Code

How To: Use DPAPI to Encrypt and Decrypt Data (C#/VB.NET)

答案 1 :(得分:-1)

为什么您的连接字符串(或至少是用户名和密码位)甚至在您的应用程序中。

如果您不能使用集成,那么您应该提供登录对话并每次输入。