MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Трябва ли да имам директен достъп до mongodb?

Виеопределено не искате да излагате вашия MongoDB сървър(и) на приложението за Android директно, особено ако приложението ще има потребителска роля, позволяваща достъп за запис до базата данни. Всеки с достъп до приложението за Android може потенциално да открие и извлече тези идентификационни данни и ако приложението ви за Android е проектирано да се свързва от по-широка мрежа, това излага ненужно вашия MongoDB сървър. Възможно е също така да отворите вашия MongoDB сървър за възможни атаки за отказ на услуга или фалшиви заявки.

Документацията на MongoDB има подробен раздел за Концепции за сигурност включително излагане на мрежата и сигурност. Най-добрата практика за всяко внедряване на база данни е да се ограничи диапазонът от мрежови адреси, които могат да се свързват директно. Като цяло директните връзки трябва да бъдат ограничени до вашите сървъри за приложения и приложения за наблюдение, които вероятно се хостват в рамките на същата мрежова инфраструктура.

Да, препоръчителен подход би бил да напишете свой собствен интерфейс, който предоставя подходящ API и контроли за удостоверяване. Трябва да можете да намерите PHP рамка и/или библиотеки, за да сведете до минимум количеството персонализиран код, който трябва да пишете (напр. REST, JSON, Oauth).

Интерфейсът, който внедрявате, може:

  • поставете някои ограничения върху типа заявки, които крайните потребители могат да изпълняват (само това, което предоставяте, вместо пълния API на MongoDB)
  • разрешете на приложението да се удостовери с подходящи потребителски привилегии без идентификационните данни на базата данни да са вградени в приложението за Android
  • добавете допълнителна потребителска защита, като базирана на токени OAuth или Twitter/Facebook удостоверяване
  • абстрахирайте крайната точка, към която се свързва приложението за Android (вашият уеб интерфейс) от подробностите за инфраструктурата на вашето внедряване на MongoDB
  • потенциално включват кеширане за често срещани заявки или данни от сесии


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Резултатът от заявката на Mongoose само за четене ли е?

  2. MongoDB - Агрегиране на множество редове

  3. Запазете подмножество от колекция MongoDB в друга колекция

  4. NodeJS излиза от всички потребителски сесии

  5. Уникалният индекс в mongoose не работи