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

In che modo MongoDB evita il pasticcio di SQL injection?

MongoDB evita potenziali problemi non analizzando.

Qualsiasi API, ovunque, che implichi la codifica dei dati dell'utente in testo formattato che viene analizzato ha il potenziale per il chiamante e il chiamato di non essere d'accordo su come analizzare il testo. Questi disaccordi possono essere problemi di sicurezza quando i dati vengono interpretati erroneamente come metadati. Questo è vero sia che tu stia parlando di stringhe in formato printf, incluso il contenuto generato dall'utente in HTML, sia che tu stia generando SQL.

Poiché MongoDB non analizza il testo strutturato per capire cosa fare, non c'è possibilità di interpretare erroneamente l'input dell'utente come istruzioni, e quindi nessuna falla nella sicurezza.

Per inciso, il consiglio di evitare le API che richiedono l'analisi è l'elemento 5 in http://cr.yp.to/qmail/guarantee.html. Se sei interessato a scrivere software sicuro, vale la pena dare un'occhiata anche agli altri 6 suggerimenti.

Aggiornamento (2018):la risposta originale così come l'ho data rimane fedele al meglio delle mie conoscenze. Dal punto di ciò che viene inviato a MongoDB a ciò che viene restituito, non c'è alcun attacco SQL injection. Gli attacchi di injection di cui sono a conoscenza si verificano al di fuori di MongoDB e sono in realtà problemi nel modo in cui le lingue e le librerie esterne impostano la struttura dei dati che verrà passata a MongoDB. Inoltre, la posizione della vulnerabilità risiede nel modo in cui i dati vengono analizzati per diventare una struttura di dati. Pertanto la risposta originale descrive accuratamente sia come evitare attacchi di iniezione, sia cosa ti mette a rischio.

Ma questa precisione è un freddo conforto per un programmatore che è colpito da attacchi di iniezione a causa di difetti che non erano evidenti nel proprio codice. Pochi di noi distinguono tra lo strumento esterno e tutti i livelli tra il nostro codice e quello strumento esterno. E resta il fatto che richiede vigilanza da parte nostra per anticipare e chiudere gli attacchi di iniezione. Con tutti gli strumenti. E questo rimarrà il caso per il prossimo futuro.