MongoDB पार्स न करके समस्याओं की संभावना से बचता है।
कोई भी एपीआई, कहीं भी, जिसमें स्वरूपित पाठ में उपयोगकर्ता डेटा को एन्कोड करना शामिल है जिसे पार्स किया जाता है, कॉलर और कैली के लिए उस पाठ को कैसे पार्स किया जाना चाहिए, इस पर असहमत होने की क्षमता है। जब मेटाडेटा के रूप में डेटा की गलत व्याख्या की जाती है, तो ये असहमति सुरक्षा समस्याएँ हो सकती हैं। यह सच है कि आप प्रिंटफ प्रारूप स्ट्रिंग्स के बारे में बात कर रहे हैं, जिसमें एचटीएमएल में उपयोगकर्ता द्वारा उत्पन्न सामग्री, या एसक्यूएल उत्पन्न करना शामिल है।
चूंकि MongoDB संरचित पाठ को यह पता लगाने के लिए पार्स नहीं करता है कि क्या करना है, उपयोगकर्ता इनपुट को निर्देशों के रूप में गलत व्याख्या करने की कोई संभावना नहीं है, और इसलिए कोई संभावित सुरक्षा छेद नहीं है।
संयोग से उन API से बचने की सलाह जिन्हें पार्स करने की आवश्यकता है, http://cr.yp.to/qmail/guarantee.html में आइटम 5 है। यदि आप सुरक्षित सॉफ़्टवेयर लिखने में रुचि रखते हैं, तो अन्य 6 सुझाव भी ध्यान देने योग्य हैं।
अपडेट (2018):जैसा कि मैंने दिया मूल उत्तर मेरे सर्वोत्तम ज्ञान के लिए सही है। MongoDB को जो भेजा जाता है, उसके बिंदु से वापस भेजे जाने तक, कोई SQL इंजेक्शन हमला नहीं होता है। इंजेक्शन हमलों के बारे में मुझे पता है कि मोंगोडीबी के बाहर होता है और वास्तव में समस्याएं हैं कि बाहरी भाषाओं और पुस्तकालयों ने डेटा संरचना कैसे स्थापित की है जो मोंगोडीबी को पास की जाएगी। इसके अलावा भेद्यता का स्थान यह है कि डेटा संरचना बनने के रास्ते पर डेटा को कैसे पार्स किया जाता है। इसलिए मूल उत्तर सटीक रूप से दोनों का वर्णन करता है कि इंजेक्शन के हमलों से कैसे बचा जाए, और क्या आपको उनके जोखिम में डालता है।
लेकिन यह सटीकता एक प्रोग्रामर के लिए ठंडा आराम है जो उन दोषों से इंजेक्शन हमलों की चपेट में है जो उनके अपने कोड में स्पष्ट नहीं थे। हम में से कुछ बाहरी टूल और हमारे कोड और उस बाहरी टूल के बीच की सभी परतों के बीच अंतर करते हैं। और तथ्य यह है कि इंजेक्शन के हमलों की आशंका और बंद करने के लिए हमारी ओर से सतर्कता की आवश्यकता है। सभी साधनों के साथ। और निकट भविष्य में ऐसा ही रहेगा।