一个理论上的问题:
我有一个C#Windows窗体应用程序,它将一些用户提交的数据发送回互联网上的外部mySQL服务器。 如何阻止人们看到mySQL服务器的用户名和密码? (例如,通过反编译C#exe程序)。
祝你好运
答案 0 :(得分:3)
简短的回答:你不能 - 任何在你无法控制的机器上运行的东西都可以反编译等。
可能的选择:
您可以在服务器端尝试使用SSL加密的Web服务,通过client-cert(SSL标准的一部分)对客户端进行身份验证。该Web服务将代表客户端访问数据库。然后,您可以在网络服务和数据库之间建立连接...
答案 1 :(得分:1)
通常,您要么提示用户提供凭证,要么如果该帐户是公开的(例如凭据不安全,如您的情况),则限制帐户可以执行的操作。
答案 2 :(得分:1)
我会将用户提交的数据传递给另一个与数据库服务器进行实际通信的服务。这样,您的连接详细信息可以与客户端分开。
如果您不能这样做,那么您应该为您的mySQL数据库创建一个受客户端代码使用的受限帐户。
答案 3 :(得分:0)
实际上,客户端软件知道的所有内容都为用户所知。
为客户端软件设置尽可能小的界面。不要暴露完整的DB帐户,而是仅使用一个限制为某些存储过程的帐户。或者不要直接访问数据库,而是通过(Web)服务访问数据库。然后,确保该服务仅公开安全执行方法。