समर्थित ड्राइवरों में से एक का उपयोग करें। स्ट्रिंग्स को JSON के रूप में डिसेरिएलाइज़ न करें और उन्हें प्रश्नों के रूप में पास करें, उदा। ऐसा मत करो (रूबी में):
collection.send(query_type, JSON.parse(parameters))
जहां query_type
और parameters
एक रूप से आने वाले तार हैं। हालांकि ऐसा करने के लिए आपको आपराधिक रूप से मूर्ख बनना होगा।
चूंकि कोई क्वेरी भाषा नहीं है, इसलिए इंजेक्शन के लिए एक ही जगह नहीं है। SQL इंजेक्शन के हमले संभव होने का एक कारण यह है कि कार्रवाई की जानी चाहिए (SELECT
, UPDATE
, DELETE
, आदि) क्वेरी स्ट्रिंग का हिस्सा है। MongoDB, और कई अन्य नए डेटाबेस, उस तरह काम नहीं करते हैं, इसके बजाय कार्रवाई एपीआई का एक हिस्सा है। जहां SQL ड्राइवरों के पास केवल query
होता है और कुछ मामलों में exec
, MongoDB में find
. है , UPDATE
, insert
और remove
।