【发布时间】:2017-05-26 00:45:05
【问题描述】:
我对这些天面临的 MongoDB 行为感到非常困惑。我在 Windows Live 服务器上运行 MEAN(MongoDB、Express、Angular、NodeJS)应用程序。两次发生我的应用程序连接的整个数据库被自动删除。我不知道它发生了什么。我在网上搜索过,但没有找到答案。我正在为 MongoDB 使用 Monk。
如何检测它的问题?
【问题讨论】:
我对这些天面临的 MongoDB 行为感到非常困惑。我在 Windows Live 服务器上运行 MEAN(MongoDB、Express、Angular、NodeJS)应用程序。两次发生我的应用程序连接的整个数据库被自动删除。我不知道它发生了什么。我在网上搜索过,但没有找到答案。我正在为 MongoDB 使用 Monk。
如何检测它的问题?
【问题讨论】:
实际上超过 28k 的 mongodb 服务器受到了社区的攻击,他们要么删除了数据库,要么对其进行了加密。现在他们要求比特币作为备份。
现在出现的问题是 mongoDb 是安全的,因为许多数据库已被删除或加密
答案是YES Mongodb 是完全安全的,这背后的原因是程序员缺乏安全措施。
现在来解决问题。
检查服务器上的 mongod.conf 文件:
当我们安装 mongodb 时,服务器上会自动生成一个文件名 mongod.conf。您可以通过以下命令进行检查。
cd /etc/
sudo vim mongod.conf
在这张图片中你会发现 bindIp 是 127.0.0.1 这是一个本地主机意味着只有这个服务器被允许使用数据库在你的情况下这必须是 0.0.0.0 这允许黑客获取访问您的数据并删除所有文件,因此只需将 bindIp 更新为 127.0.0.1,它现在不会发生。
即使您可以使用 mongo 身份验证,请使用此链接进一步参考https://docs.mongodb.com/manual/tutorial/enable-authentication/
【讨论】:
bindIp 已经设置为127.0.0.1。有什么想法吗?
我注意到一个行为:
创建新数据库 > 暂时不要添加任何数据(集合/文档) > 断开 mongodb 客户端 > 重新连接到 mongodb > 砰,新数据库消失!
而且当有一些数据添加时,它显然不会自动删除数据库。
我猜这是 mongodb 的默认行为,或者可能是我使用的客户端(Robo 3T)。
【讨论】: