从2017年1月3号开始,MangoDB赎金事件开始大规模被发现。在这个事件中,很多“裸奔”的MangoDB被黑客删除,并索要赎金来恢复数据库。
这个事件的原因是在早期(2.6以前) 的MangoDB版本, 为了方便开发者使用,其默认的地址绑定在0.0.0.0 上。由于默认配置中用户没有加访问权限控制,于是黑客可以访问并删除数据库。
小科普:地址0.0.0.0 和 127.0.0.1 的区别
每个主机都可能有多个ip地址, 比如多个网卡或多ip,
127.0.0.1
是本地环回地址, 专供自己访问自己, 速度大( 不用经过整个协议栈 ), 所以用在开发环境合适.正如主机可能有多个ip地址, 所以
0.0.0.0
是一个特指本机所有ip地址都绑定, 这样, 适用于发布环境, 否则你只能绑定在类似 106.88.0.22
之类的地址上, 你的发布脚本就不美观了.localhost
只是 127.0.0.1
的别名, 至于 ipv6 之类的在这里毫无影响, 可以忽略.Reference
[1]纯技术角度:从 MONGODB “赎金事件” 看安全问题