好的,我提前为这个问题道歉,因为它非常广泛。
基本上,我正在开发一个系统,涉及:
- 用户可以注册帐户的网站。此过程将在服务器上为该帐户创建一个新数据库。
- 用 Java 编写的客户端外部应用程序。这将访问数据库中的数据,以便为用户执行有用的操作。
- 在第一点创建的数据库本身。
我的问题是关于应该实施哪些安全措施以保证数据库的安全以及如何安全地传输数据。
我的担忧是:
- MySQL 数据库实际上是如何保护的?在注册帐户时创建数据库时,是否需要为该数据库设置密码?这会加密数据库吗?这足以阻止某人访问数据吗?
- Java 很容易反编译。假设我要将帐户数据库的登录数据存储在主数据库中,我如何保护该数据库并以一种不需要我硬编码连接到该数据库的详细信息的方式从我的应用程序连接到它在应用程序中。我相信这在编译为本机代码的语言中也一定是一个问题,因为有人可以在应用程序运行时执行内存转储来获取这些变量(我认为)。
- 从服务器向客户端发送和接收数据时,反之亦然,如何防止有人通过网络窃听并获取数据(无论是登录凭据还是数据库中的其他数据)。我认为这就是 SSL 的用途,但这就是我需要使用的全部内容吗?
这些问题的一个可能答案是在 Java 客户端应用程序和数据库之间使用中间人服务,这与在 Javascript 和 MySQL 数据库之间使用 PHP 的方式非常相似(尽管在这种情况下 PHP 是必需的) . 我假设这个中间人服务将包含主数据库等的登录凭据,并将包含它自己的方法来防止未经授权的访问。如果这是正确的,我将如何设置这样的服务?是否可以利用 Java 应用程序中的 PHP 脚本来传输数据?
我希望我的问题是有道理的,不是太模棱两可。在此先感谢您的时间。