MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

MongoDB में JavaScript NoSQL इंजेक्शन की रोकथाम

सुशांत का उत्तर सही नहीं है। आपको जरूरत 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 } . में बदल देगा स्ट्रिंग करने के लिए और कोई नुकसान नहीं किया जाएगा। इस मामले में, आपको सैनिटाइज़ करने की ज़रूरत नहीं है, बस एक उचित स्कीमा सेट करना याद रखें।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB में एक सबस्ट्रिंग को बदलने के 2 तरीके

  2. MongoDB संग्रह में परिवर्तन कैसे सुनें?

  3. नेवला:CastError:कास्ट करने के लिए ObjectId पथ _id . पर मूल्य [वस्तु वस्तु] के लिए विफल

  4. Mongoose में ऑब्जेक्ट को सरणी स्कीमा में धकेलना

  5. $एकत्रीकरण ढांचे में किसी वस्तु को खोलना