2011-06-25 5 views
1

En NodeJS, nous pouvons obtenir des données POST par ceci:Prévenir sans fin les documents sous dans NodeJS et MongoDB

<input type="text" name="doc[a]"/> 

var doc = req.body.doc;

Quand je reçois 'doc', j'insérer dans MongoDB en utilisant Native- MongoDB collection.insert (doc, ..)

Je me demande si lorsque vous faites la demande POST, j'injecte ce type de données

doc[a][b][c][d][e][f][g][h][i][j][.]... = xxxx 
doc[b] = yyy 
doc[e] = zzz 

J'ai seulement besoin de doc [a] buy finirait par avoir doc.a.b.c.d.f.g ... comme ça dans Node et MongoDB non? Quelle est une bonne solution pour éviter que cela n'arrive?

Répondre

0

Des informations sur MongoDB Injection peuvent être trouvées au official docs. et Voici quelques security guidelines from PHP. La solution est assez simple - type l'a coulé à la chaîne.

+0

Merci pour la réponse. Donc à chaque fois, je dois parseInt (doc.a) pour Int, String (doc.a) pour String et utiliser pour (k dans doc.arr) doc.arr [k] = String (doc.arr [k]) pour le tableau de chaîne. – winladen

+0

Oui. Les injections fonctionnent lorsque vous traitez les données de l'utilisateur non seulement comme valeur pour la commande de la base de données, mais dans le cadre de la commande. – CamelCamelCamel

Questions connexes