我如何拥有安全的MongoDB-猫鼬设置?

问题描述 投票:0回答:1

我正在开发一个将使用MongoDB的Node.js应用,我正在尝试使其尽可能安全。

对数据库的身份验证

首先,我想限制对数据库的访问,因此添加了身份验证。所以现在,在终端中,我必须这样登录:

~$ mongo -u <myusername> -p --authenticationDatabase admin

但是,在我的JavaScript中,我必须在以下行中以纯文本形式添加密码:

// Connect to the database 
mongoose.connect('mongodb://localhost/<myDB>?authSource=admin', {user: <myusername>, pass: <mypassword>, useNewUrlParser: true, useUnifiedTopology: true}); 

这打扰了我。这使我想到了第一个问题:如何在没有代码纯文本密码的情况下限制对数据库的访问?


猫鼬和MongoDB之间]

我发现Mongoose通过TCP / IP与MongoDB通信。我跑了个电线,看看我是否可以检测到数据,实际上我可以:screen capture

后端和MongoDB可能位于两台不同的计算机上。这使我想到了最后一个问题:我在这里的多个帖子中看到,有时建立了SSH连接,但是这是确保通信安全的最佳方法吗?

我正在开发一个将使用MongoDB的Node.js应用,我正在尝试使其尽可能安全。对数据库的身份验证首先,我想限制对数据库的访问,所以我...

node.js mongodb security mongoose
1个回答
0
投票

MongoDB默认不启用访问控制。运行没有访问控制的MongoDB实例意味着可以连接到数据库的任何人都可以运行命令,并有可能查看数据库中的所有数据。

© www.soinside.com 2019 - 2024. All rights reserved.