sql >> Database >  >> NoSQL >> MongoDB

MongoDB-server is nog steeds toegankelijk zonder inloggegevens

Authenticatie voorkomt dat je acties uitvoert op de database (zoals je screenshot laat zien - je kunt zelfs geen databases weergeven), het verhindert geen verbindingen - je moet tenslotte verbinding kunnen maken om te kunnen authenticeren.

Er is een functieverzoek om time-outs toe te voegen, maar voor nu is dit in wezen hoe de server zich hoort te gedragen.

Het is vermeldenswaard dat totdat u iets probeert te doen, dit echt niet anders is dan alleen verbinding maken met de poort met telnet - de tekst die wordt weergegeven aan het begin "verbinden met:" etc. is van de client, niet van de server. Zodra het iets niet-geverifieerd probeert te doen, zelfs de serverwaarschuwingen weergeeft, wordt er een fout gegenereerd omdat het niet voldoende rechten heeft.

Als je dingen wilt vergrendelen vanuit een verbindingsperspectief, is de enige optie vanuit een MongoDB-perspectief om de IP-adressen waarop het luistert te beperken (standaard is alles) met behulp van de bindIp optie. Met behulp van 127.0.0.1 zou het bijvoorbeeld vergrendelen voor lokaal gebruik (maar u zou dan geen verbinding kunnen maken vanaf een externe host), wat replicatie een probleem maakt, dus wees voorzichtig bij het kiezen van uw gebonden adres.

Buiten MongoDB moet je dingen vanuit een firewallperspectief bekijken. Op Linux zou dit IPTables, ufw, hosts.allow/deny of iets dergelijks zijn. Windows-firewall is niet mijn expertisegebied, maar ik kan me voorstellen dat je daar ook iets dergelijks kunt doen.



  1. NodeJS + MongoDB:gegevens ophalen uit verzameling met findOne ()

  2. Wat is de beste MongoDB GUI? — Update 2019

  3. Mongoose findByIdAndUpdate geeft niet het juiste model terug

  4. Mongoose.js-query's synchroon laten lopen