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() 不允许未经身份验证的访问