在我的WPF工具中,有如下的数据库连接字符串:
Server=myServerAddress;Database=myDataBase;User Id=abd;Password=xyz;
我给用户一个exe文件作为界面。我们不允许用户的Windows ID直接访问数据库。所以WPF工具不能使用Windows身份验证。WPF中的连接字符串包含数据库用户名和密码。如果某人有知识,他可以使用一些工具,如ILSpy,去编译exe文件并查看数据库连接字符串。我看到了一些工具可以混淆exe文件。但他们并不是自由的。我们不想用它们。当我们提供WPF exe文件时,有没有其他保护数据库用户名和密码的方法?
发布于 2021-05-17 15:10:25
最好的方法可能是根本不允许直接访问数据库。相反,创建一个接受来自应用程序的请求并将其转发到数据库的网络服务。这样,服务就可以处理身份验证和权限。
如果这不是一个选项,您可以看看Securing a password in source code。
简单地混淆密码也可能比整个应用程序容易得多。仅仅将字符串编码为字节数组并存储数组,就会使使用反编译程序提取字符串变得更加困难。添加某种“加密”,即使它只是一个带有随机数组的XOR,也会使它更加困难。请注意,这不会阻止具有管理权限的熟练和坚定的攻击者,因为您需要某种外部身份验证。
发布于 2021-05-17 15:13:16
没有防弹方法来保护任何被分发的代码不被反编译。
您应该始终假定,您公开公开的任何代码都可以反编译和反向工程,而不管您所做的任何混淆尝试。
因此,您应该将任何机密信息移动到受适当防火墙保护的远程服务。不要在分发的文件中包含任何敏感信息。
https://stackoverflow.com/questions/67571923
复制相似问题