【发布时间】:2015-03-01 14:25:11
【问题描述】:
我即将发布一个使用数据库连接来存储数据的小工具。问题是:如何防止人们对我的代码进行逆向工程并让Username 和Password 访问数据库?
对于早期的项目(仅供我自己使用),我将connection-string 定义为我的应用程序中的全局变量。但这是非常不安全的,因为只需几分钟就可以将这个字符串从 exe 中取出。
还有很多混淆代码的方法可以逆向。
我真的很喜欢提供代码,但我不知道该发布什么。这更多是关于理论的问题。编码是我会照顾自己的部分。
这是我的一个小想法,我不太喜欢:
我可以在服务器上放置第二个工具。真正的应用程序将连接到第二个工具,提供数据,第二个数据最终将连接到我的数据库本身。这样,连接字符串将存储在第二个应用程序中,没有人可以抓取它。
【问题讨论】:
-
大多数人会将用户设置存储在设置文件中。有时,特定于用户。有时,特定于机器。如果这些设置包含敏感数据,则会对这些值进行加密。
-
是的,我以前读过。但是要使用加密的字符串,我需要解密它。这种“如何解密”的方法也将存储在我的应用程序中。又是一种可能的方法来解决它,你不觉得吗?我希望将这个工具传播给至少 100-200 人。所以风险是存在的。
-
您的想法可以实现为网络服务。您不想允许外部连接到您的数据库。
-
监听通过网络发送的数据怎么样?您也将能够看到密码。 CodeCaster 是对的:使用 Web 服务。
-
@PatrickHofman:SSL 是重点。这也是我已经考虑过的部分。
标签: c# mysql server code-access-security