我正在开发一个将使用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});
这打扰了我。这使我想到了第一个问题:如何在没有代码纯文本密码的情况下限制对数据库的访问?
我发现Mongoose通过TCP / IP与MongoDB通信。我跑了个电线,看看我是否可以检测到数据,实际上我可以:screen capture
后端和MongoDB可能位于两台不同的计算机上。这使我想到了最后一个问题:我在这里的多个帖子中看到,有时建立了SSH连接,但是这是确保通信安全的最佳方法吗?
我正在开发一个将使用MongoDB的Node.js应用,我正在尝试使其尽可能安全。对数据库的身份验证首先,我想限制对数据库的访问,所以我...
MongoDB默认不启用访问控制。运行没有访问控制的MongoDB实例意味着可以连接到数据库的任何人都可以运行命令,并有可能查看数据库中的所有数据。