我有一个连接到 MySQL 数据库的 VB6 应用程序。用户名和密码在源代码中。问题是当我在十六进制编辑器中打开 .exe 文件时,用户名和密码都是可见的。
您能否提出一个解决方案,使用户名和密码不再可见?谢谢
只要这些凭据在您的应用程序中,稍有知识的人就可以找到并阅读它们。
如果您对该信息进行加密,则需要在某个时候对其进行解密。所以你要么需要应用程序中的解密密钥——这样人们也可以阅读它,从而使整个事情变得毫无意义——或者你将在服务器端解密——在这种情况下,其他任何人也可以发送加密的凭据。
所以这里有一个提示:不要将应用程序的安全性建立在代码中隐藏一些秘密的基础上。您将只是向脚本小子展示一个有趣的挑战。
你真的需要一个中间层。
在任何可行的情况下,您都希望避免与客户端共享数据库凭据。理想情况下,您甚至不希望防火墙允许来自外部的数据库连接。
无论如何,客户端/服务器 DBMS 连接协议都不是在 Internet 上使用的最佳选择。
这些都是“Web 服务”概念出现的原因,甚至在这个词被创造出来之前就已经被使用了。
当然,这仍然使您需要在客户端提供凭据。我会通过将它们存储在外部来处理这个问题,以便可以更新它们。您可能还想在程序中使用两个解密阶段,以便您可以划分过程,从而更难从反编译/反汇编代码进行逆向工程。在初始化的早期执行一个阶段,然后在稍后执行另一个阶段,或者在建立连接之前执行第二阶段。