我有一个直接连接到MySql数据库进行用户身份验证的Swing应用程序。
- 该应用程序的位代码将在互联网上可供下载
- 连接信息在静态变量中
我知道我应该编写一个服务器来处理身份验证,但最初的要求没有提到身份验证用例
我的问题是:混淆应用程序是否足以对连接信息进行编码?
你知道他们通过默默无闻说安全!(提示:这根本不是安全性)。
加密它(尽管由于似乎没有服务器端组件,我没有看到可行的方法)。或者像你说的那样做身份验证服务器端。
不,大多数人将能够对字节码进行逆向工程或反编译并查看变量。您可以自己尝试一下,看看您并没有真正向任何高级用户隐藏任何内容。
在这种情况下,您确实希望在客户端和数据库之间有一个服务来处理身份验证,就像您所说的那样。
然后,该服务将具有允许/禁止访问数据库的用户帐户。
编辑:
尝试使用此反编译器,并亲自查看这是否不起作用。
我想做一些快速而肮脏的事情,但最终我意识到做正确的事情也不需要太多。我所做的是有一个外观,在服务器端公开DAO,服务器和客户端对象通过Java套接字进行通信。
然后,我不是直接从客户端调用 DAO,而是通过将方法的名称作为 String 传递来调用服务器上的方法。在反射的帮助下,立面在 DAO 上调用了正确的方法。
我想我应该对字符串进行编码并添加一个安全令牌。
- -