MongoDB одного сервера безопасности и надежности для производственной среды? - PullRequest
1 голос
/ 03 ноября 2011

Я хочу установить MongoDb на одном сервере, и я искал вокруг, чтобы убедиться, что я делаю это правильно.На данный момент я почерпнул несколько основ безопасности:

  1. Включить аутентификацию (http://www.mongodb.org/display/DOCS/Security+and+Authentication - по умолчанию не включена?)
  2. Разрешить только локальные соединения
  3. ВPHP, обязательно приведите параметры GET и POST к строкам, чтобы избежать атак с использованием инъекций (http://www.php.net/manual/en/mongo.security.php)

Я также кое-что понял о надежности.

  1. Вы привыкли иметьиспользуйте шардинг для нескольких ящиков, но теперь вы можете просто включить Журналирование ? (/3858706/mongodb-problemy-nadezhnosti-vse-esche-znachimy)

Это конец истории? Включите Аутентификацию и ведение журнала, и вы готовы пойти на одинсервер?

Спасибо!

1 Ответ

1 голос
/ 03 ноября 2011

Если вы работаете на одном сервере, то вам обязательно нужно включить ведение журнала.На 2.0 это значение по умолчанию для 64-битных сборок;в 32-разрядных сборках или более старых выпусках (серия 1.8.x) вы можете включить его с помощью параметра --journal флаг командной строки или файла конфигурации.Имейте в виду, что использование журналирования приведет к тому, что MongoDB будет использовать вдвое больше памяти, чем обычно, что в большинстве случаев является проблемой на 32-битных машинах (поскольку память там обычно ограничена до 2 ГБ, при ведении журнала она будет фактически уменьшена вдвое).

Аутентификация может помочь, но лучшими мерами безопасности является обеспечение того, чтобы только компьютеры, которыми вы управляете, могли общаться с MongoDB.Вы можете сделать это с помощью параметра командной строки --bind_ip или параметра файла конфигурации.В качестве дополнительной меры вы также должны установить брандмауэр (iptables или аналогичный).

Что касается атак с использованием инъекций, то в большинстве случаев вы должны быть в безопасности, если вы не будете слепо преобразовывать JSON (или подобные структуры) вPHP связывает и передает их напрямую в методы MongoDB.Если вы создаете ассоциацию самостоятельно, обработав значения $POST или $GET, вы должны быть в безопасности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...