सुशांत का उत्तर सही नहीं है। आपको जरूरत MongoDB में NoSQL इंजेक्शन से अवगत होने के लिए।
उदाहरण (यहां से लिया गया)
User.findOne({
"name" : req.params.name,
"password" : req.params.password
}, callback);
अगर req.params.password
है { $ne: 1 }
, उपयोगकर्ता को पासवर्ड जाने बिना पुनः प्राप्त किया जाएगा ($ne
मतलब 1 के बराबर नहीं है )।
MongoDB ड्राइवर
आप mongo-sanitize का उपयोग कर सकते हैं:
<ब्लॉककोट>यह इनपुट में '$' से शुरू होने वाली किसी भी कुंजी को हटा देगा, ताकि आप दुर्भावनापूर्ण उपयोगकर्ताओं के ओवरराइटिंग की चिंता किए बिना इसे MongoDB को पास कर सकें।
var sanitize = require('mongo-sanitize');
var name = sanitize(req.params.name);
var password = sanitize(req.params.password);
User.findOne({
"name" : name,
"password" : password
}, callback);
नेवला चालक
चूंकि यह एक स्कीमा का अनुसरण करता है, यदि पासवर्ड एक स्ट्रिंग फ़ील्ड है, यह ऑब्जेक्ट को { $ne: 1 }
. में बदल देगा स्ट्रिंग करने के लिए और कोई नुकसान नहीं किया जाएगा। इस मामले में, आपको सैनिटाइज़ करने की ज़रूरत नहीं है, बस एक उचित स्कीमा सेट करना याद रखें।