mysql - 如何设计手机充值码的安全数据库

标签 mysql security database-design database-schema

假设我想将数百万个充值代码保存到一个单独的数据库(名为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/

相关文章:

security - SSL证书验证

php - 通过请求安全 token 自动登录

mysql - 第一范式数据库规范化

mysql - 表名可以用作另一个表的字段吗?

mysql - 如何选择某些 'id'的和并将结果按组划分

php - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 2 行 '' 附近使用的正确语法

java - 如何防止从其他网站调用我的 servlet

sql - 数据建模帮助 - 我是否要添加另一个表、更改现有表的用法或其他什么?

mysql - 是否可以按索引命名列

php - 为什么 SQL/PHP 中的这个查询不起作用?