MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

iniezione di mongoDB

Utilizzare uno dei driver supportati. Non deserializzare le stringhe come JSON e passarle come query, ad es. non farlo (in Ruby):

collection.send(query_type, JSON.parse(parameters))

dove query_type e parameters sono stringhe provenienti da un form. Dovresti essere criminalmente stupido per farlo.

Dal momento che non esiste un linguaggio di query in quanto tale, non c'è lo stesso spazio per l'iniezione. Parte del motivo per cui sono possibili attacchi SQL injection è che l'azione da intraprendere (SELECT , UPDATE , DELETE , ecc.) fa parte della stringa di query. MongoDB e molti altri database più recenti non funzionano in questo modo, invece l'azione fa parte dell'API. Dove i driver SQL hanno solo query e in alcuni casi exec , MongoDB ha find , update , insert e remove .