首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这种逻辑安全/性能明智吗?

问这种逻辑安全/性能明智吗?
EN

Security用户
提问于 2012-08-08 11:39:06
回答 2查看 160关注 0票数 2

每个物理用户将在数据库中有大约20个表。

当新用户注册时,将创建另外20个表,仅对其新的MySQL帐户具有访问权限。

数据不必在用户之间共享。

这一逻辑是否比所有用户仅拥有20个表更安全?表演会死还是不死呢?

编辑

我只想确定一个喜欢“玩”注入和找到方法的用户将无法访问其他用户数据。

EN

回答 2

Security用户

发布于 2012-08-08 12:17:59

这是一个糟糕的设计(或者根本没有设计)。

您应该像在面向对象编程中创建类一样对表进行建模:每个类/表代表一个概念,因此您应该为每个用户拥有一个用户表和对其他表的一些权限。

梅丽斯是设计数据库的一种很好的方法(更重要的是它现在主要用于数据库的设计)。恐怕这是一个法国文化的例外,因为似乎没有其他国家使用它,但如果你能找到你的语言资源,这将对你的设计有很大帮助。

票数 2
EN

Security用户

发布于 2012-08-08 16:20:15

由于这是security.stackexchange.com,我将重点讨论安全问题。(我同意其他海报/评论:对于长期的可维护性来说,这通常不是一个好的设计。这可能对性能不好,但如果不知道用户--包括您,管理员--是如何查询它的,这是不可能的。)

从安全POV中,将用户数据分离到MySQL中的不同表只有在您还为MySQL中的每个用户设置单独的用户帐户,然后显式地设置他们的权限以便他们只能访问这些表时才会有好处。此时,权限变得非常混乱,难以跟踪、验证和更正,但它将减少SQL注入攻击的风险。

从概念上讲,给每个用户自己的模式(或MySQL术语中的“数据库”)并赋予他们对整个模式的特权在概念上会更容易一些。这使得特权更易于审计,并且仍然降低了SQL注入的风险。

后一种概念并不完全疯狂--许多服务器都是这样配置的,以便在同一台服务器上运行几个不同的数据库支持的应用程序,而不允许它们访问彼此的数据。在您的情况下,这是否有意义在很大程度上取决于您有多少用户。

我不是赞成你的设计,只是指出正反两方面。

票数 2
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/18294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档