MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Czy powinienem uzyskać bezpośredni dostęp do mongodb?

Ty zdecydowanie nie chcesz udostępniać swoich serwerów MongoDB bezpośrednio aplikacji na Androida, zwłaszcza czy aplikacja będzie miała rolę użytkownika umożliwiającą dostęp do zapisu w bazie danych. Każdy, kto ma dostęp do aplikacji na Androida, może potencjalnie odkryć i wyodrębnić te poświadczenia, a jeśli Twoja aplikacja na Androida jest zaprojektowana do łączenia się z szerszą siecią, niepotrzebnie naraża serwer MongoDB. Możesz także otwierać swój serwer MongoDB na możliwe ataki typu „odmowa usługi” lub nieuczciwe zapytania.

Dokumentacja MongoDB zawiera szczegółową sekcję dotyczącą Koncepcji bezpieczeństwa w tym narażenie sieci i bezpieczeństwo. Najlepszą praktyką przy każdym wdrożeniu bazy danych jest ograniczenie zakresu adresów sieciowych, które mogą się łączyć bezpośrednio. Zasadniczo połączenia bezpośrednie powinny być ograniczone do serwerów aplikacji i aplikacji monitorujących, które prawdopodobnie są hostowane w tej samej infrastrukturze sieciowej.

Tak, zalecanym podejściem byłoby napisanie własnego interfejsu, który zapewnia odpowiedni interfejs API i kontrolę uwierzytelniania. Powinieneś być w stanie znaleźć framework PHP i/lub biblioteki, aby zminimalizować ilość niestandardowego kodu, który musisz napisać (np. REST, JSON, Oauth).

Zaimplementowany interfejs może:

  • nałóż pewne ograniczenia na typ zapytań, które mogą uruchamiać użytkownicy końcowi (tylko to, co podasz, a nie pełny interfejs API MongoDB)
  • zezwól aplikacji na uwierzytelnianie z odpowiednimi uprawnieniami użytkownika bez poświadczeń bazy danych osadzonych w aplikacji na Androida
  • dodaj dodatkowe zabezpieczenia użytkownika, takie jak oparte na tokenach OAuth lub uwierzytelnianie na Twitterze/Facebooku
  • wyodrębnij punkt końcowy, z którym łączy się aplikacja na Androida (interfejs internetowy) ze szczegółów infrastruktury wdrożenia MongoDB
  • potencjalnie uwzględniaj buforowanie dla typowych zapytań lub danych sesji


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Skompresuj (skróć) ciąg PHP z 24 znaków do 20

  2. Czy MongoDB zapewnia unikalne wartości pola _id podczas używania złożonego klucza fragmentu z _id?

  3. Jak zaktualizować wiele pól za pomocą Update.Set w MongoDB przy użyciu oficjalnego sterownika c#?

  4. Lejek liniowy ze zbioru zdarzeń z agregacją MongoDB, czy to możliwe?

  5. MongoDB countDocuments()