2015-06-01 9 views
5

Ich benutze MongoDB mit NodeJS und frage mich, ob ich Daten vor dem Einfügen/Aktualisieren von Datenbankdokumenten bereinigen muss. Es ist schwer, eine definitive Antwort zu finden, und ich frage mich, ob es irgendwelche Node-Module gibt, die es gut machen, oder ich muss alle Vorkommen von $ in Strings entfernen oder einfach keine Sorge darüber haben. Ich weiß, dass PHP Löcher hat, aber ich benutze Node/Mongo (nativer Treiber) Combo, bin aber immer noch nicht sicher, ob ich die Benutzereingaben putzen muss.Muss ich Benutzereingaben bereinigen, bevor ich sie in MongoDB einfüge (MongoDB + Node js combo)

Antwort

3

Wenn Sie Ihre Daten als String speichern und nicht analysieren, um den Mongo-Befehl auszuführen, dann gibt es nicht viel Grund zur Sorge.

Nizza Artikel auf Sicherheit

http://cr.yp.to/qmail/guarantee.html

Das einzige Problem tritt auf, wenn Sie die Benutzereingabe abrufen und analysieren Sie, dass die Eingabe des Mongo-Befehl auszuführen, hier müssen Sie darauf achten, die sanieren Eingabe, sonst bekommst du einen Angriff.

Es gibt ein npm Paket zu tun, dass für Sie

https://www.npmjs.com/package/mongo-sanitize

und schöne Artikel zu diesem Thema zu

https://thecodebarbarian.wordpress.com/2014/09/04/defending-against-query-selector-injection-attacks/

1

Ja, Sie tun. Für weitere Informationen überprüfen Sie dies; https://www.npmjs.com/package/content-filter

Auch native escape() Methode möglicherweise zum Schutz der Datenbank verwendet werden.

Führen Sie das Code-Snippet unten aus, um die Ergebnisse anzuzeigen.

let a = "{$gt:25}" 
 
console.log(a) 
 
console.log(escape(a))

Verwandte Themen