我正在开发一个项目,在我看来应该只有一个数据库。但是,客户坚持认为,在发生安全漏洞的情况下,将数据分成多个数据库会更安全。这有点道理,但最后我认为,如果发生违规行为,无论您拥有多少数据库,您最有可能将所有内容都窃取。当且仅当您的数据库之间没有连接时,我猜您才受到保护。
我的项目包含两种类型的用户:Basic和Paid。我的客户坚持认为基本用户应该有自己的数据库,而付费用户完全在一个单独的数据库上。这意味着我必须在每个数据库中构建两个登录表。问题在于允许免费用户(甚至是访客)搜索付费用户。好吧,猜猜看,我必须连接到付费用户数据库才能检索它们。这不就是把它们放在一个地方一样吗?我甚至没有提到用户需要拥有与他们相关的地址,图像和其他内容(基本或付费)。这就是试图在两个数据库之间强制执行完整性的事情。
现在,回到问题。拥有多个数据库更安全吗?如果是的话,为什么会这样做以及为了不打破这一点必须遵循什么?
答案 0 :(得分:2)
您的问题是我一直从业务中听到的最常见的问题之一。从开发人员的角度来看,你已经说过完全真实的问题了,你对他们是正确的。
尝试将数据库表分隔到不同的服务器不会有助于提高安全性。尽管如此,它将导致完整性和同步问题,其影响比数据泄露更大。
当攻击者可以访问您的应用程序服务器时,他们也可以访问所有数据库。虽然加密源代码 -E.g用于PHP的Ioncube - ,但不会帮助你。另一方面,即使您使用两个或三个独立的数据库,一个单独的SQL注入漏洞也会导致您泄漏整个数据库。
我相信他们正试图坚持从网络服务器分离数据库服务。