Použijte jeden z podporovaných ovladačů. Nedeserializujte řetězce jako JSON a nepředávejte je jako dotazy, např. nedělej to (v Ruby):
collection.send(query_type, JSON.parse(parameters))
kde query_type
a parameters
jsou řetězce pocházející z formy. Museli byste být ale kriminálně hloupí, abyste to udělali.
Protože neexistuje žádný dotazovací jazyk jako takový, není zde stejný prostor pro injekci. Jedním z důvodů, proč jsou možné útoky SQL injection, je to, že akce, kterou je třeba provést (SELECT
, UPDATE
, DELETE
, atd.) je součástí řetězce dotazu. MongoDB a mnoho dalších novějších databází takto nefunguje, místo toho je akce součástí API. Kde ovladače SQL mají pouze query
a v některých případech exec
, MongoDB má find
, update
, insert
a remove
.