Sushant के जवाब सही नहीं है। आप को मोंगोडीबी में नोएसक्यूएल इंजेक्शन के बारे में जागरूक होने के लिए की आवश्यकता है।
उदाहरण (here से लिया)
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 }
स्ट्रिंग के लिए परिवर्तित कर देंगे और कोई नुकसान किया जाएगा। इस मामले में, आपको स्वच्छता की आवश्यकता नहीं है, बस उचित स्कीमा सेट करना याद रखें।
जब तक आप 'JSON.parse' ('eval' के विपरीत) का उपयोग कर JSON को पार्स कर रहे हैं, और आप डेटा को मान्य कर रहे हैं, तो आपको ठीक होना चाहिए। JSON स्वाभाविक रूप से खतरनाक नहीं है :) – Ryan
चीजों को अपने डेटाबेस में प्रवेश करने से रोकें, अपने डेटाबेस में चीजों को कोड के रूप में चलाने से रोकें। – Incognito
तो मैं अपनी पोस्ट ऑब्जेक्ट को कैसे पार्स करूं? – daniel