【问题标题】:SQL dual database securitySQL 双数据库安全
【发布时间】:2017-03-08 05:10:09
【问题描述】:

所以这与代码本身的关系不大,更多的是关于效率和实用性。 在我之前的工作中,我们有多个数据库。一种可以通过公共方式访问,另一种只能私下访问。公共数据库基本上可以显示私人数据库所做的一切,并且它们几乎是同步的,每 2 分钟左右更新一次。 他们的想法是,如果公共数据库因某种类型的 SQL 注入或其他恶意破坏数据库而被破坏,它不会影响生产,并且可以立即恢复。

然而,这是一个相当小规模的操作,一次只有大约 100 人访问数据库,如果发生任何不好的事情,我很确定有人必须手动进入并恢复数据库来解决问题。

我的问题是,这是一种正确的做事方式吗?这种策略什么时候开始变得非常低效?假设我每天有数万个查询,这将无法维护吗?

感谢您的洞察力。

【问题讨论】:

  • "这是正确的做事方式吗?" - 可能不是。不要直接暴露数据库。在其上放置一个许可的 API;至少为只读视图。也不要将 OLTP 和 OLAP 问题混为一谈。
  • 公共数据库总是一个坏主意。但是:如果您的公共数据库受到 SQL 注入的影响,那么您的私人数据库也是如此 - 因为不知何故,数据必须到达那里,不是吗?此外,您应该担心数据泄漏,而不是可以通过备份缓解的数据破坏。所以你的大部分努力应该放在使你的代码安全和你的数据库不公开

标签: mysql sql relational-database database-security


【解决方案1】:

第一道防线必须是访问数据库的软件,有很多方法可以防止sql注入,例如使用SP,发送参数而不是查询,... 尽管如果系统用户提供的数据(如这个论坛)拥有一个私有数据库并不比拥有一个数据库副本(你说它每 2 分钟同步一次,公共数据库中的任何更改都会将私有数据库更改为好)。您可以以不同的时间间隔拥有不同的数据副本,并在发生任何事情时随时回滚到一个好的副本。

我曾经在一家银行工作,他们在磁带上复制!这是一次写入/只读磁带,以防发生比 sql 注入更大的事情!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-02
    • 2021-06-10
    相关资源
    最近更新 更多