मैं अपने पहले डेस्कटॉप ऐप पर काम कर रहा हूं जो एलडीएपी से पूछताछ करता है। मैं यूनिक्स के तहत सी में काम कर रहा हूं और opends का उपयोग कर रहा हूं, और मैं एलडीएपी के लिए नया हूं। उस पर थोड़ी देर के बाद मैंने देखा कि उपयोगकर्ता दुर्भावनापूर्ण कोड इंजेक्ट करके एलडीएपी क्वेरी को बदलने में सक्षम हो सकता है।
मैं जानना चाहता हूं कि सी/यूनिक्स विकास के लिए न केवल स्वच्छता तकनीकों को जाना जाता है, बल्कि अधिक सामान्य शब्दों में, यानी, वेब विकास इत्यादि
मैंने सोचा कि बराबर और अर्धविराम से बचने के लिए पर्याप्त होगा, लेकिन सुनिश्चित नहीं है। एक अच्छा सुरक्षा गाइड हैएलडीएपी इंजेक्शन को रोकना
String ldapSearchQuery = "(cn=" + $userName + ")";
System.out.println(ldapSearchQuery);
जाहिर है मैं के रूप में इस OWASP ARTICLE
एक आरएफसी है जो एलडीएपी खोज फ़िल्टर (http://www.ietf.org/rfc/rfc2254.txt) से बचने के बारे में बात करती है, लेकिन यह सुरक्षा पर केंद्रित नहीं है। हालांकि, यह निम्न भाग सूचीबद्ध करता है जैसे भागने की आवश्यकता: *() \ और एनयूएल (0x00)। इसलिए मैं आपकी सूची में तारांकन और बैकस्लैश जोड़ूंगा। इस विषय के लिए कोई वास्तव में आधिकारिक स्रोत नहीं मिला। सुनिश्चित नहीं है कि कुछ यूनिकोड कोण हैं जिसके बारे में आपको चिंता करने की ज़रूरत है। निजी तौर पर, मैंने अपने कार्यान्वयन पर एक बहुत ही सीमित सफेद सूची (अंक, वर्ण, अंडरस्कोर और अंतरिक्ष) दृष्टिकोण का उपयोग किया। –
+1 अच्छा सवाल है। – rook
संभावित डुप्लिकेट [एलडीएपी क्वेरी में उपयोग के लिए सी # में स्ट्रिंग से कैसे बचें] (http://stackoverflow.com/questions/649149/how-to-escape-a-string-in-c-for-use -इन-ए-एलडीएपी-क्वेरी) – Randolpho