Du helt sikkert ønsker ikke at udsætte dine MongoDB-servere for Android-applikationen direkte, især hvis applikationen vil have en brugerrolle, der tillader skriveadgang til databasen. Enhver med adgang til Android-appen kan potentielt opdage og udtrække disse legitimationsoplysninger, og hvis din Android-app er designet til at oprette forbindelse fra et bredere netværk, afslører dette din MongoDB-server unødigt. Du åbner muligvis også din MongoDB-server for mulige denial-of-service-angreb eller useriøse forespørgsler.
MongoDB-dokumentationen har et detaljeret afsnit om sikkerhedskoncepter herunder netværkseksponering og sikkerhed. Bedste praksis for enhver databaseimplementering er at begrænse rækken af netværksadresser, der kan oprette forbindelse direkte. Generelt bør direkte forbindelser være begrænset til dine applikationsservere og overvågningsapps, som sandsynligvis hostes inden for den samme netværksinfrastruktur.
Ja, en anbefalet tilgang ville være at skrive din egen grænseflade, som giver en passende API og godkendelseskontroller. Du bør være i stand til at finde en PHP-ramme og/eller biblioteker for at minimere mængden af tilpasset kode, du skal skrive (f.eks. REST, JSON, Oauth).
Den grænseflade, du implementerer, kan:
- sæt nogle begrænsninger på den type forespørgsler, som slutbrugere kan køre (kun det, du leverer, i stedet for hele MongoDB API)
- tillad applikationen at godkende med passende brugerrettigheder uden at have databaselegitimationsoplysningerne indlejret i Android-appen
- tilføj yderligere brugersikkerhed såsom token-baseret OAuth eller Twitter/Facebook-godkendelse
- abstrakt endepunktet, som Android-appen opretter forbindelse til (din webgrænseflade) fra infrastrukturdetaljerne for din MongoDB-implementering
- inkluder potentielt caching for almindelige forespørgsler eller sessionsdata