sql >> Database >  >> NoSQL >> MongoDB

Moet ik rechtstreeks toegang krijgen tot mongodb?

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


  1. MongoEngine specificeer leesvoorkeur bij zoekopdracht

  2. MongoDB Replica Set-lidstaat is ANDERE

  3. Unicode inkapselen van redis

  4. primaire scherven in mongodb