esiste un modello comune in Java per evitare gli attacchi di mongoDB injection?mongoDB injection
Grazie
esiste un modello comune in Java per evitare gli attacchi di mongoDB injection?mongoDB injection
Grazie
Utilizzare uno dei driver supportati. Non deserializzare le stringhe come JSON e passarle come query, ad es. Dont' fare questo (in Ruby):
collection.send(query_type, JSON.parse(parameters))
dove query_type
e parameters
sono stringhe proveniente da un formulario. Dovresti essere criminalmente stupido per fare questo però.
Poiché non esiste un linguaggio di query in quanto tale, non esiste la stessa stanza per l'iniezione. Parte del motivo per cui gli attacchi di SQL injection sono possibili è che l'azione da intraprendere (SELECT
, UPDATE
, DELETE
, ecc.) Fa parte della stringa di query. MongoDB e molti altri database più recenti non funzionano così, invece l'azione fa parte dell'API. Laddove i driver SQL hanno solo query
e in alcuni casi exec
, MongoDB ha find
, update
, insert
e remove
.
La maggior parte dei piloti sono setup dove si costruisce query come la rappresentazione lingue dei documenti BSON. In quali lingue hai intenzione di usare mongo?
È possibile creare querys MongoDB con Javascript nella clausola where e qui può verificarsi l'iniezione. Ecco la spiegazione su come prevenire questo: http://www.mongodb.org/display/DOCS/Do+I+Have+to+Worry+About+SQL+Injection
sì, utilizzando la ricerca regex. Es: diciamo che controlli tramite nome utente e non stai usando EQ op. Se passo [a-z], ad esempio, eviterò la tua azione di login :).
Ma in ogni caso, dipende molto dalla logica di come vengono implementate le cose nella soluzione.
Potete chiarire la domanda con la lingua con cui intendete interfacciare mongo? –
domanda aggiornata – Mark