Security 生产环境的MongoDB单服务器安全性和可靠性?
我想在一台服务器上安装MongoDb,我一直在四处搜索以确保我做得正确。到目前为止,我已经收集了一些关于安全性的基本知识:Security 生产环境的MongoDB单服务器安全性和可靠性?,security,mongodb,Security,Mongodb,我想在一台服务器上安装MongoDb,我一直在四处搜索以确保我做得正确。到目前为止,我已经收集了一些关于安全性的基本知识: 启用身份验证(http://www.mongodb.org/display/DOCS/Security+和+身份验证-默认情况下未启用?) 仅允许本地主机连接 在PHP中,确保将GET和POST参数强制转换为字符串,以避免注入攻击(http://www.php.net/manual/en/mongo.security.php) 我还学到了一件关于可靠性的事情 您以前在多个框
谢谢 如果您在一台服务器上运行,那么您肯定应该启用日志记录。在2.0上,这是64位构建的默认值;在32位版本或较旧版本(1.8.x系列)上,可以使用
--journal
命令行标志或配置文件选项启用它。请注意,使用日志记录将导致MongoDB使用正常情况下的两倍内存,这在32位机器上主要是一个问题(因为那里的内存通常限制在2GB左右,使用日志记录将有效地减少一半)
身份验证可以有所帮助,但最好的安全措施是确保只有您控制的机器才能与MongoDB通信。您可以使用--bind_ip
命令行标志或配置文件选项执行此操作。您还应该设置防火墙(iptables或类似)作为额外措施
至于注入攻击,只要您不盲目地将JSON(或类似结构)转换为PHP ASSOC并将其直接传递给MongoDB方法,就应该是安全的。如果您自己构造assoc,通过处理
$POST
或$GET
值,您应该是安全的。如果您在单个服务器上运行,那么您肯定应该启用日志记录。在2.0上,这是64位构建的默认值;在32位版本或较旧版本(1.8.x系列)上,可以使用--journal
命令行标志或配置文件选项启用它。请注意,使用日志记录将导致MongoDB使用正常情况下的两倍内存,这在32位机器上主要是一个问题(因为那里的内存通常限制在2GB左右,使用日志记录将有效地减少一半)
身份验证可以有所帮助,但最好的安全措施是确保只有您控制的机器才能与MongoDB通信。您可以使用--bind_ip
命令行标志或配置文件选项执行此操作。您还应该设置防火墙(iptables或类似)作为额外措施
至于注入攻击,只要您不盲目地将JSON(或类似结构)转换为PHP ASSOC并将其直接传递给MongoDB方法,就应该是安全的。如果您自己构造assoc,通过处理$POST
或$GET
值,您应该是安全的