Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 生产环境的MongoDB单服务器安全性和可靠性?_Security_Mongodb - Fatal编程技术网

Security 生产环境的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) 我还学到了一件关于可靠性的事情 您以前在多个框

我想在一台服务器上安装MongoDb,我一直在四处搜索以确保我做得正确。到目前为止,我已经收集了一些关于安全性的基本知识:

  • 启用身份验证(http://www.mongodb.org/display/DOCS/Security+和+身份验证-默认情况下未启用?)
  • 仅允许本地主机连接
  • 在PHP中,确保将GET和POST参数强制转换为字符串,以避免注入攻击(http://www.php.net/manual/en/mongo.security.php)
  • 我还学到了一件关于可靠性的事情

  • 您以前在多个框上使用切分,但现在您可以只启用?(http://stackoverflow.com/questions/3487456/mongodb-are-reliability-issues-significant-still)
  • 故事就这样结束了吗?启用身份验证和日志记录,您就可以使用单个服务器了吗


    谢谢

    如果您在一台服务器上运行,那么您肯定应该启用日志记录。在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
    值,您应该是安全的