Drupal 安全性和两个数据库

信息安全 mysql
2021-08-24 01:09:23

我为我们的网站使用drupal。它使用存储数据的节点。我们将许多这些节点链接在一起,以允许我们记录工作、客户信息、发票等。这些通过插件 drupal 模块链接。如果我要删除链接,整个网站对我来说毫无意义。

由于这个模块是将节点链接在一起的所有模块,我认为从安全 pov 开始,我可以在另一台服务器上创建一个数据库/应用程序,每当 drupal 去获取链接的节点 id 时,它将通过这台服务器(发送一个密钥并收到正确的 nid 作为回报)。如果主库被盗,链接将毫无意义,基本上是毫无价值的数据。

这听起来可行且值得吗?

3个回答

不,我怀疑这种辩护可能不会很好地利用你的时间。

如果您没有链接,那么您将很难使用这些信息——对于好人来说很难轻松使用。这对可用性不利,因为信息不容易使用,它可能对您的许多用户没有多大用处。但坏人不受这些限制。坏人可能仍然可以获得很多敏感信息,并将事情拼凑起来,足以让你度过糟糕的一天。

你还记得伊朗革命学生冲进美国驻伊朗大使馆的故事吗?美国居民在撤离前已经撕碎了许多文件,但伊朗学生仍然能够像拼图一样将撕碎的文件碎片小心翼翼地拼凑成一个整体。他们有时间和耐心去做。这些破碎的文件对于合法授权的美国外交官来说几乎没有用处,但它们足以让攻击者找出美国不希望他们拥有的许多敏感信息。安全通常是这样的;与您网站的任何普通用户相比,坏人愿意付出更多努力来恢复您的数据。

无论如何,如果你的网站被黑了,你想告诉媒体“哦,是的,他们得到了所有的数据,但他们没有得到链接,所以一切都很好?” 这听起来不像是那种会激发客户信任的事情。这不是一张漂亮的照片。

所以,我建议你把精力花在其他地方。请记住,安全是一项风险管理工作。这意味着您需要根据以最少的时间、精力和成本为您带来最大安全收益的因素来确定您将时间花在哪里的优先级。我不认为这种辩护是好的。相反,我会专注于基础知识,例如应用程序安全 (SDL)、配置管理、网络安全、灾难准备和恢复、内部教育等等。大多数组织都有很大的改进空间,即使在基础上也是如此。

这会导致性能下降。此外,这取决于您担心被盗的原因。即使您这样做,攻击者仍有可能获取您的客户列表,如果您正在存储它,还可能获取付款信息​​。

即使数据在没有关系键的情况下在您的应用程序中没有用处,但如果该数据以任何方式保持一致,攻击者可能会对不相关的数据感到非常满意。

考虑到 0 day 这样的威胁,绝对有必要确保当网站被入侵时,主数据库不被盗。通过揭露漏洞并提供您的网站地址,您也不会像 Mat Honan 那样暴露自己的地址,并且存在如此巨大的安全问题。

这可以在将调解主服务器和节点之间的安全性的外部身份验证服务器的基础上实现。

如果您可以更详细地描述您在做什么,我可以举一个例子。

身份验证服务器也使用所有安全机制,它的功能有限,只能用作身份验证和密码恢复服务,因此不会暴露于常见的 Drupal 远程攻击。还有密码加密等等。而且它没有暴露在互联网上,并且有更严格的过滤。这样,从技术上讲,任何站点/数据库都不应该能够在对其进行身份验证之前为您提供任何数据,并且只提供您可以通过 API、直接 DB 访问或 OO 类访问的数据。这有时也需要对数据库和代码进行更新,例如模式和安全检查,但首先可以确保 MySQL 的 root 密码或其他任何东西都没有在任何地方使用,并且管理员登录名已更改为其他内容,