2017-07-27 102 views
0

我想建立一个VB.NET应用程序将连接到MySQL数据库。 我正在考虑将MySQL密码放在My.Setting文件上,但这很容易阅读。哪一种将密码放在程序上最安全? 我不想在启动时问它,我希望它被嵌入到软件中,但是在哪里?MySQL的密码安全

+0

有密码和密码。我不会给任何用户一个密码到数据库 - 它可以允许然后在没有你的应用程序的情况下访问数据库。相反,让用户验证自己的应用程序,然后使用自己的凭据。选项取决于它是否是桌面应用程序或Web应用程序,以及我们没有暗示的其他细节。另外,请阅读[问]并参加[游览] – Plutonix

回答

0

Wellll .....如果它存储在一个自动程序可读的格式(又名,用户不必输入任何密码或凭证,以使应用程序能够利用所述数据库密码)那么并不完全是一种“安全”的方式,因为任何有意义的加密都要求用户输入一些凭据来检索加密信息。您可以将它作为Base64文本存储在模块中进行模糊处理,但这并不是“安全”的。完全一样。它只是编码不同(不加密)。

给我更大的问题是,是环境安全吗?在例如网站的后端,用于SQL数据库的口令通常存储在无阻碍的PHP配置文件...那是因为环境是安全的:PHP源不能被获得公共和受信任的用户访问后端都被认为是非恶意的。

所以,这引发了一些问题:

  • 如果从运行的应用程序?
  • MySQL数据库在哪里,本地或远程?
  • 有多少人可以访问此数据库或将使用此应用程序?

这些都是应该占全部因素。其他

一两件事 - 如果你正在构建一个.NET应用程序,有一定的.NET代码混淆器,在那里,你的编译代码,使其很难掠夺编译一次玩。这可能是你感兴趣的。我相信Dotfuscator会在Visual Studio中发布标准版吗?您可以注册一个免费账户。

+0

我正在尝试构建RPG多人游戏,帐户/角色信息存储在MySQL数据库中。图像,音乐,连接和除帐户和角色信息外的所有内容均基于客户端。 目前我有连接字符串,包括项目中的模块上的IP,端口,用户名和密码。 – Reviyee

+0

从您的解释和我对网络界面知识的掌握来看,我打赌您确实需要构建您的桌面应用程序以利用安全隧道与_web应用程序/ service_进行对话;让Web应用程序/服务进行数据库交谈,因为它在隔壁;然后通过安全隧道返回服务中继消息。这样,您的数据库用户名/密码不会通过电线发送(他们绝不应该是)。桌面应用程序只应将播放器的凭据发送到远程服务器,该服务器在内部验证并处理所有与数据库相关的内容,然后将结果发回。 –

+0

你可以写一个简单的php脚本来处理这个问题,甚至,我相信visual studio支持异步web服务调用。我认为。不要引用我。 –