很抱歉,这个问题可能比较广泛。下面是我的理解:
我正在开发一个系统,包括以下内容:
- 一个网站,用户可以注册账户。这个过程会在服务器上为该账户创建一个新的数据库。
- 一个用Java编写的客户端应用程序。它将访问数据库中的数据,以执行有用的操作。
- 第一点中创建的数据库本身。
我的问题是关于哪些安全措施应该实施,以使数据库安全,并如何安全地传输数据。
我的担忧是:
- MySQL数据库实际上是如何保护的?当我在账户注册时创建数据库时,需要为该数据库设置密码吗?这样加密了数据库吗?这足以防止其他人访问数据吗?
- Java相当容易反编译。假设我要在主数据库中存储某个账户数据库的登录数据,如何保护该数据库并以一种不需要在应用程序中硬编码连接详细信息的方式连接到该数据库?我认为这也必须是编译成本机代码的语言中的问题,因为某些人只需执行内存转储即可在应用程序运行时获得这些变量(我想)。
- 在从客户端到服务器和反之间发送和接收数据时,如何防止网络窃听者获取数据(无论是登录凭据还是来自数据库的其他数据)。我想这就是SSL的作用,但这是否足够?
对这些问题的一个可能答案是在Java客户端应用程序和数据库之间使用中间人服务,就像在JavaScript和MySQL数据库之间使用PHP一样(虽然在这种情况下,PHP是必需的)。我认为这个中间人服务将包含主数据库的登录凭据等信息,并且将包含其自己的方法以防止未经授权的访问。如果这是正确的,那么我该如何设置这样的服务?是否可能从Java应用程序中利用PHP脚本传输数据?
感谢您花时间阅读我的问题。