Mysql 创建数据库桌面应用程序的正确方法是什么?
我刚刚意识到,在我的可执行文件中,尤其是在JAR文件中,没有最好的方法来隐藏MySQL字符串连接密码。即使在EXE中加密它也只会减慢进程(尽管我不确定从EXE文件获得加密密码需要多长时间) 所以,从我的理解,我需要中间的东西来添加、编辑、删除等到数据库。似乎是RESTAPI或SOAP服务的工作 我的问题是,我应该使用哪一个?还是我应该用别的?我在考虑Zend框架来创建这些RESTAPI。然后,我将使用Qt创建一个桌面应用程序来调用这些api。但如果我继续使用REST,我的应用程序将是一个三层应用程序。如果我只创建一个web应用程序不是更好吗?也许我应该坚持使用桌面应用程序调用这些API,因为应用程序已经完成,我只需要从直接连接到MySQL改为调用这些API来执行任务,而不是将整个应用程序更改为web 任何建议都会很有帮助。提前谢谢 更新: 我正在寻找一种安全性,可以保护我的MySQL密码连接。 混淆器只会混淆代码,它不会隐藏我的字符串数据库信息,在我看来,在使用JAD等工具对JAR进行反编译后,可以使用grep轻松找到这些信息 关于我的申请:Mysql 创建数据库桌面应用程序的正确方法是什么?,mysql,qt,zend-framework,rest,Mysql,Qt,Zend Framework,Rest,我刚刚意识到,在我的可执行文件中,尤其是在JAR文件中,没有最好的方法来隐藏MySQL字符串连接密码。即使在EXE中加密它也只会减慢进程(尽管我不确定从EXE文件获得加密密码需要多长时间) 所以,从我的理解,我需要中间的东西来添加、编辑、删除等到数据库。似乎是RESTAPI或SOAP服务的工作 我的问题是,我应该使用哪一个?还是我应该用别的?我在考虑Zend框架来创建这些RESTAPI。然后,我将使用Qt创建一个桌面应用程序来调用这些api。但如果我继续使用REST,我的应用程序将是一个三层应用
这取决于你想要什么样的安全。这是为了保护应用程序不受用户攻击吗?保护用户的数据不受其他用户的影响?保护多个用户的数据不受其他用户的影响?为了保护用户的数据免受攻击者的攻击 在许多应用程序中,以纯文本形式存储数据库登录凭据没有什么问题。在其他情况下,您可以尝试:
我还想提到的是,有一些Java资源混淆器可以加密字符串文本。这只是一个例子。这在很大程度上取决于你的应用程序在什么环境下运行 a) 数据库和客户端本地
b) 本地网络中的数据库和客户端
c) db在互联网上 我的两分钱: a) 我将创建一个db用户,不使用密码,但限制对localhost的访问
b) 直接连接到数据库很好,但我希望每个用户都必须使用自己的密码登录,并且只授予他所需的权限。
c) 允许mysql连接到公共服务器是个坏主意。在这种情况下,webservices将是一个很好的解决方案 无论如何,如果你的情况是b或c,我会坚持与用户登录对话框 也许你应该看看这个工具。 它类似于防火墙,但适用于mysql/postresql
因此,您可以拒绝任何内容,只允许您想要的查询。如果您使用Java实现数据库桌面应用程序,我建议将其用作数据库。有几种方法可以保护它,除了在连接字符串中使用密码之外,还有其他方法。我建议你读一读
使用JavaDB部署应用程序很容易,因为可以将大部分应用程序嵌入到同一个jar文件中。我在一个用Java实现的销售点应用程序中使用过它。拥有一个可以在没有任何身份验证的情况下调用的REST API绝对比“嵌入式”密码更安全。如果REST API不是一个好的解决方案,我会考虑一些授权方面的问题,你有什么建议?我不同意将数据库登录凭据存储在