【发布时间】:2021-05-17 14:43:34
【问题描述】:
在我的 WPF 工具中,有如下数据库连接字符串:
Server=myServerAddress;Database=myDataBase;User Id=abd;Password=xyz;
我给用户一个exe文件作为界面。我们不允许用户的 Windows ID 直接访问数据库。所以 WPF 工具不能使用 Windows 身份验证。 WPF 中的连接字符串包含数据库用户名和密码。如果有人有知识,他可以使用ILSpy之类的工具来反编译exe文件并查看数据库连接字符串。 我看到一些工具可以混淆 exe 文件。但它们不是免费的。我们不想使用它们。当我们提供 WPF exe 文件时,还有其他方法可以保护数据库用户名和密码吗?
【问题讨论】:
-
那么,这是一个内部应用程序?
-
用户的积极性如何?如果应用程序需要能够解密它,最终攻击者可以获取值 - 你无法真正阻止它(这是他们的机器;例如,他们可以使用低级调试器和在您添加的任何解密代码之后添加一个断点,并检查值)。使用集成安全性(SSPI / 域身份验证)会起作用吗? (如果您不使用密码,就无法窃取密码)
-
另一个攻击向量是可能包含所有数据的内存转储。为此,您可以使用 SecureString。