我在代码中有数据库连接字符串,如;
String connectionUrlForSomeCompany = "jdbc:sqlserver://192.168.131.10;" + "databaseName=CompanyName;" + "user=" + "test.user" + ";" + "password=" + "testuserpassword" + ";";
我计划分发这个应用程序,但检测到一些关于字符串的漏洞。当用户通过Winrar提取jar时,所有类都被提取和读取。并且一些类显示在DB Connection string上面。
我尝试通过ProGuard对Jar文件进行Obfuscate。类名已更改,但内容未加密。因此,如果用户尝试读取所有类,则DB Connection String可以找到。
我该如何防止这种情况?
问候。
答案 0 :(得分:1)
混淆可以而且应该只混淆类名,变量名,包名等。如果它混淆了内容字符串,那么当程序需要时,您希望如何获得原始值?
混淆不是加密。
在这种情况下,没有任何方法可以帮助你。
让客户端连接到您的数据库永远不是一个好主意。您可以尝试将连接字符串分离到配置文件,并仅将配置文件提供给您信任的人。