假设我想将数百万个充值代码保存到一个单独的数据库(名为A)中,该数据库有一个表。我想设计另一个将由 Web 应用程序使用的数据库(名为 B)。 我想让我的数据库 A 保持独立并尽可能安全,最好不要暴露在网络上。这样任何人都无法访问/破解大量敏感数据。
但是我还必须根据需要或 Web 应用程序的请求,使用数据库 A 表中的代码填充数据库 B 的一个表。
我使用 Mysql DB 和 Apache Tomcat 作为 Web 服务器。
您能否建议我设计数据库的最佳且安全的方法,请记住...... 1)A库代码安全优先。 2) 表将包含数百万行,因此也需要快速响应。
最佳答案
我将其添加为答案,因为它对于评论来说太长了。
我认为这更多的是关于应用程序设计和分层,而不是数据库设计本身。在数据库设计方面,您只需要表具有使用您将拥有的所有键的索引。数据库访问将是亚秒级的。
就应用程序设计而言,我想您的应用程序会知道何时查看表 B 以及何时必须从表 A 检索。
所以,关键问题是:如何访问 A。最简单的方法是应用程序连接到 A,并通过 SQL 读取它。这样做的问题是,您的应用程序服务器上的黑客可以看到您的连接详细信息。您可以尝试掩盖从应用程序服务器到 A 的连接详细信息。这将是“通过模糊实现安全性”,并且会某事,但不会阻止优秀的黑客。
如果您认真对待控制,您可以在 A 上运行一个应用程序。您可以阻止 A 外部的应用程序访问 A 上的数据库的所有方式,将 A 上的应用程序作为唯一的访问点。
凭借其独特性,该应用程序可以提供另一个层次的默默无闻。例如,应用程序可以坚持知道正在请求代码的客户 ID,并且可以根据某些信息(甚至在 B 上)检查此信息。但是,有更好的理由使用一个......
B 上的应用程序可以
- 实现控制:例如每小时仅给出 1000 个代码
- 发送警报:例如如果请求的代码超过 500 个,请向运算符(operator)发送电子邮件 小时
关于mysql - 如何设计手机充值码的安全数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22681012/