Vy určitě nechcete své servery MongoDB vystavit přímo aplikaci pro Android, zejména pokud bude mít aplikace uživatelskou roli umožňující zápis do databáze. Kdokoli s přístupem k aplikaci pro Android by mohl tyto přihlašovací údaje potenciálně objevit a extrahovat, a pokud je vaše aplikace pro Android navržena pro připojení z širší sítě, zbytečně to odhaluje váš server MongoDB. Možná také otevíráte svůj server MongoDB možným útokům typu denial-of-service nebo nečestným dotazům.
Dokumentace MongoDB obsahuje podrobnou část o Koncepcích zabezpečení včetně vystavení a zabezpečení sítě. Nejlepším postupem pro jakékoli nasazení databáze je omezit rozsah síťových adres, které se mohou připojit přímo. Obecně by přímá připojení měla být omezena na vaše aplikační servery a monitorovací aplikace, které jsou pravděpodobně hostovány v rámci stejné síťové infrastruktury.
Ano, doporučeným přístupem by bylo napsat své vlastní rozhraní, které poskytuje vhodné rozhraní API a kontroly ověřování. Měli byste být schopni najít PHP framework a/nebo knihovny, abyste minimalizovali množství vlastního kódu, který musíte napsat (např. REST, JSON, Oauth).
Rozhraní, které implementujete, může:
- uveďte určitá omezení na typ dotazů, které mohou koncoví uživatelé spouštět (pouze to, co poskytnete, nikoli úplné rozhraní MongoDB API)
- umožněte aplikaci ověřit pomocí příslušných uživatelských oprávnění aniž byste měli přihlašovací údaje k databázi vložené do aplikace pro Android
- přidat další uživatelské zabezpečení, jako je například OAuth na základě tokenů nebo ověřování na Twitteru/Facebooku
- Abstrakce koncového bodu, ke kterému se aplikace pro Android připojuje (vaše webové rozhraní), z podrobností infrastruktury vašeho nasazení MongoDB
- potenciálně zahrnovat ukládání do mezipaměti pro běžné dotazy nebo data relací