Jij zeker u wilt uw MongoDB-server(s) niet rechtstreeks blootstellen aan de Android-applicatie, vooral als de toepassing een gebruikersrol heeft die schrijftoegang tot de database mogelijk maakt. Iedereen met toegang tot de Android-app kan deze inloggegevens mogelijk ontdekken en extraheren, en als uw Android-app is ontworpen om verbinding te maken vanaf een breder netwerk, wordt uw MongoDB-server onnodig blootgelegd. Mogelijk stelt u uw MongoDB-server ook open voor mogelijke denial-of-service-aanvallen of frauduleuze zoekopdrachten.
De MongoDB-documentatie bevat een gedetailleerde sectie over Beveiligingsconcepten inclusief netwerkblootstelling en beveiliging. De beste werkwijze voor elke database-implementatie is het beperken van het bereik van netwerkadressen die rechtstreeks verbinding kunnen maken. Over het algemeen moeten directe verbindingen worden beperkt tot uw applicatieservers en monitoring-apps, die waarschijnlijk binnen dezelfde netwerkinfrastructuur worden gehost.
Ja, een aanbevolen aanpak zou zijn om uw eigen interface te schrijven die een geschikte API en authenticatiecontroles biedt. Je zou een PHP-framework en/of bibliotheken moeten kunnen vinden om de hoeveelheid aangepaste code die je moet schrijven te minimaliseren (bijv. REST, JSON, Oauth).
De interface die u implementeert kan:
- een aantal beperkingen opleggen aan het type zoekopdrachten dat eindgebruikers kunnen uitvoeren (alleen wat u opgeeft, in plaats van de volledige MongoDB API)
- laat de toepassing authenticeren met de juiste gebruikersrechten zonder dat de database-inloggegevens zijn ingesloten in de Android-app
- voeg extra gebruikersbeveiliging toe, zoals op tokens gebaseerde OAuth of Twitter/Facebook-authenticatie
- neem het eindpunt waar de Android-app verbinding mee maakt (uw webinterface) samen uit het infrastructuurdetail van uw MongoDB-implementatie
- mogelijk caching opnemen voor veelvoorkomende vragen of sessiegegevens