我想制作一个应用程序来使用 Java 语言在计算机上执行一些远程任务。我有一个要检查信息的数据库 - 我只是不确定从客户端连接到 MySQL 数据库是否安全。
我已经能够想到以下解决方案:
- 从客户端连接并查询数据库
- 请求带有查询服务器的 PHP 脚本的网页
哪种方法会更好?用户能否以某种方式从 Java 客户端看到 MySQL 凭据?
好吧,它不是那么安全。
您必须在应用程序中存储数据库凭据。Java 应用程序是可反编译的,这意味着如果有人反编译您的应用程序,他将能够自由访问您的数据库。
在我看来,通过 PHP 网桥查询数据库更好,您可以限制可以在数据库上执行的操作,并且如果您的托管服务提供商关闭了对不在服务器上的客户端的数据库访问(即您的托管服务提供商提供访问仅适用于在同一服务器上执行的 php 脚本),使用 php 桥,您始终可以确保能够查询数据库
我认为最好实现 Web 服务并通过该服务返回数据。
我觉得你的思路很不错。如果您访问 PHP 页面、servlet 或某种 Web 服务或网页,它肯定会增加另一层安全性,这些页面将返回数据,而不是应用程序直接访问数据。
您绝对应该记住的另一件事是为解决方案中使用的数据库帐户提供访问您要返回的数据所需的最低安全性。这样,您就有了几层安全性。