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