mongodb - 防止未经身份验证访问 mongodb

Posted

技术标签:

【中文标题】mongodb - 防止未经身份验证访问 mongodb【英文标题】:mongodb - Prevent access to mongodb without authentication 【发布时间】:2016-07-02 02:37:52 【问题描述】:

我是 MEAN STACK 网络应用程序的新手。而且我无法在 mongodb 中进行正确的身份验证。 我想阻止没有用户名和密码的 mongodb 数据库访问。

依赖 "mongodb" => "版本": "2.4.9", "OS" => "Ubuntu 14.04 lts 32bit",

【问题讨论】:

从字面上看,“防止未经身份验证访问 mongodb”的第一个 google 结果docs.mongodb.org/manual/tutorial/enable-authentication 【参考方案1】:

简单明了:你不能可靠。这有点像说

我希望我的房子安全,但我不想使用锁和钥匙。

为了保持在示例中,您可以雇用门卫(防火墙),但他无法可靠地告诉您除了整形手术看起来像您的人(IP 欺骗、劫持电脑,...)。

这甚至不包括授权。

想象一下所有公寓都没有门锁的公寓楼。现在,我们的门卫让您和居住在该建筑物中的所有其他人进入。但是,由于门卫被绑定到它的位置,任何可以合法进入建筑物的人都可以进入任何公寓并偷东西。或者在你的公寓里放法医证据,诬陷你没有犯下的罪行,然后直接告诉警察。

我想你明白了:如果你的 MongoDB 实例是可公开访问的,请添加身份验证和授权。即使您认为它是不可公开访问的,最好还是确定一下。

【讨论】:

【参考方案2】:

身份验证在 mongo 数据库中完成。在 mongo 控制台中尝试此操作以在数据库中创建用户

use data_base_name
db.createUser(

user: "myUserAdmin",
pwd: "abc123",
roles: [  role: "userAdminAnyDatabase", db: "admin"  ]

)

现在像这样使用数据库 url

mongodb://user:password@host:port/database_name

连接数据库

【讨论】:

以上是关于mongodb - 防止未经身份验证访问 mongodb的主要内容,如果未能解决你的问题,请参考以下文章

Spring Security - permitAll() 不允许未经身份验证的访问

如何生成Vimeo未经身份验证的访问令牌?

你组织的安全策略阻止未经身份验证的来宾访问

S3 Transfer Manager 示例显示错误:不支持未经身份验证的访问

出现未经授权的错误:需要完全身份验证才能访问此资源

React Router:处理角色身份验证