sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur undviker MongoDB SQL-injektionsröran?

MongoDB undviker risken för problem genom att inte analysera.

Varje API, var som helst, som involverar kodning av användardata i formaterad text som tolkas har potentialen för anroparen och den som ringer att inte komma överens om hur den texten ska tolkas. Dessa meningsskiljaktigheter kan vara säkerhetsproblem när data feltolkas som metadata. Detta gäller oavsett om du pratar om printf-formatsträngar, inklusive användargenererat innehåll i HTML, eller generering av SQL.

Eftersom MongoDB inte analyserar strukturerad text för att ta reda på vad man ska göra, finns det ingen möjlighet att misstolka användarinmatning som instruktioner, och därför inget möjligt säkerhetshål.

För övrigt är rådet att undvika API:er som kräver analys är punkt 5 i http://cr.yp.to/qmail/guarantee.html. Om du är intresserad av att skriva säker programvara är de andra 6 förslagen värda att titta på också.

Uppdatering (2018):Det ursprungliga svaret som jag gav det förblir sant såvitt jag vet. Från punkten av vad som skickas till MongoDB till vad som skickas tillbaka, finns det ingen SQL-injektionsattack. De injektionsattacker som jag är medveten om händer utanför MongoDB och är faktiskt problem i hur externa språk och bibliotek ställer in datastrukturen som kommer att skickas till MongoDB. Dessutom ligger platsen för sårbarheten i hur data analyseras på vägen till att bli en datastruktur. Därför beskriver det ursprungliga svaret exakt både hur du undviker injektionsattacker och vad som utsätter dig för risken för dem.

Men denna noggrannhet är kall tröst för en programmerare som drabbas av injektionsattacker från defekter som inte var uppenbara i deras egen kod. Få av oss skiljer mellan det externa verktyget och alla lager mellan vår kod och det externa verktyget. Och faktum kvarstår att det kräver vaksamhet från vår sida att förutse och stänga av injektionsattacker. Med alla verktyg. Och detta kommer att förbli fallet under överskådlig framtid.



  1. Mongo Fråga $gt,$lt

  2. Nya säkerhetskopieringshantering och säkerhetsfunktioner för MySQL och PostgreSQL:ClusterControl Release 1.6.2

  3. Revisionsloggning för MongoDB

  4. Mongoose findOneAndUpdate och upsert returnerar inga fel, inga dokument påverkade