XML और LDAP इंजेक्शन की रोकथाम
इंजेक्शन से बचाव को SQL और कमांड से आगे XML (XXE) तथा LDAP तक बढ़ाएँ। जानें कि अविश्वसनीय इनपुट इन इंटरप्रेटरों को कैसे दूषित करता है और उसे निष्प्रभावी कैसे करें।
XML और LDAP इंजेक्शन की रोकथाम, CoddyKit पर सुरक्षित कोडिंग और बैकएंड के लिए OWASP के शीर्ष 10 का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह सुरक्षित कोडिंग और बैकएंड के लिए OWASP के शीर्ष 10 सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। सुरक्षित कोडिंग और बैकएंड के लिए OWASP के शीर्ष 10 पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
SQL से आगे इंजेक्शन
आप SQL, कमांड और XSS इंजेक्शन देख चुके हैं। कोई भी दुभाषिया जो अविश्वसनीय इनपुट को संरचना के साथ मिलाता है, जोखिम में होता है। बैकएंड के दो ऐसे लक्ष्य जिन्हें अक्सर नज़रअंदाज़ कर दिया जाता है, वे हैं XML पार्सर और LDAP निर्देशिकाएँ।
XXE क्या है
XML बाहरी इकाई (XXE) इंजेक्शन उन XML पार्सरों का दुरुपयोग करता है जो बाहरी इकाइयों को हल करते हैं। हमलावर ऐसी इकाई परिभाषित करता है जो स्थानीय फ़ाइल पढ़ती है या किसी आंतरिक URL को अनुरोध भेजती है।
<!DOCTYPE x [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]>
<data>&xxe;</data>XXE क्या कर सकता है
- सर्वर से संवेदनशील फ़ाइलें पढ़ना
- आंतरिक सेवाओं के लिए सर्वर-पक्षीय अनुरोध जालसाजी करना
- इकाई विस्तार के माध्यम से सेवा-अस्वीकरण उत्पन्न करना
यह सब ऐसी पार्सर सुविधा से होता है जिसकी अधिकांश ऐप्लिकेशनों को कभी आवश्यकता नहीं होती।
बाहरी इकाइयाँ अक्षम करें
मुख्य समाधान यह है कि पार्सर को बाहरी इकाइयों या DTD को हल न करने के लिए कॉन्फ़िगर किया जाए। यह एक सेटिंग XXE को पूरी तरह बंद कर देती है।
factory.setFeature('http://apache.org/xml/features/disallow-doctype-decl', true);
factory.setExpandEntityReferences(false);अधिक सुरक्षित प्रारूप चुनें
जहाँ संभव हो, XML के बजाय JSON स्वीकार करें — इसमें इकाई की कोई अवधारणा नहीं होती और इस प्रकार का समकक्ष हमला भी नहीं होता। यदि XML लेना आवश्यक हो, तो पहले पार्सर को पूरी तरह सुरक्षित करें।
LDAP इंजेक्शन क्या है
LDAP निर्देशिकाओं से फ़िल्टर स्ट्रिंग के माध्यम से पूछताछ की जाती है। यदि उपयोगकर्ता का इनपुट फ़िल्टर में जोड़ दिया जाए, तो हमलावर पूछताछ के तर्क को बदल सकता है — यह SQL इंजेक्शन का LDAP समकक्ष है।
// vulnerable: input goes straight into the filter
filter = '(uid=' + username + ')'LDAP को दरकिनार करना
उपयोगकर्ता नाम के रूप में * या admin)(&) भेजने से सटीक फ़िल्टर ऐसा फ़िल्टर बन सकता है जो कई प्रविष्टियों से मेल खाता हो या हमेशा सफल हो जाए, और इस तरह प्रमाणीकरण को दरकिनार किया जा सकता है।
LDAP के विशेष वर्णों को एस्केप करें
विशेष वर्णों * ( ) \ NUL को फ़िल्टर में जाने से पहले एस्केप करके निष्क्रिय करें।
def escape(s):
out = ''
for ch in s:
if ch in '*()\\':
out += '\\' + format(ord(ch), '02x')
else:
out += ch
return outपैरामीटर वाले API का उपयोग करें
सबसे अच्छा यह है कि ऐसी निर्देशिका API का उपयोग करें जो इनपुट को पैरामीटर के रूप में स्वीकार करती हों, बजाय इसके कि फ़िल्टर स्ट्रिंग स्वयं बनाई जाए — यही वह सिद्धांत है जो तैयार किए गए SQL कथनों को सुरक्षित बनाता है।
सामान्य सुरक्षा उपाय
SQL, कमांड, XML और LDAP — सभी में नियम एक ही है: अविश्वसनीय इनपुट को कभी भी किसी पूछताछ या दस्तावेज़ की संरचना बदलने न दें। पैरामीटर, एस्केपिंग या सुरक्षित पार्सर कॉन्फ़िगरेशन द्वारा कोड को डेटा से अलग रखें।
अनुमत-सूची सत्यापन
इनपुट को किसी भी दुभाषिए तक पहुँचने से पहले स्वीकार्य मानों की अनुमत-सूची के विरुद्ध सत्यापित करके सुरक्षा की एक अतिरिक्त परत जोड़ें। अनपेक्षित वर्णों या प्रारूपों को जल्दी अस्वीकार करने से सभी प्रकार के इंजेक्शन के लिए हमले की सतह एक साथ छोटी हो जाती है।
import re
if not re.fullmatch(r'[a-zA-Z0-9_.-]+', username):
raise ValueError('invalid username')त्वरित जाँच
अपने इंजेक्शन बचाव की जाँच करें।
पुनरावलोकन
आपने इंजेक्शन से बचाव को XML और LDAP तक विस्तारित किया:
- XXE बाहरी इकाइयों का दुरुपयोग करता है — DTD और इकाई समाधान अक्षम करें
- LDAP इंजेक्शन फ़िल्टर में हेरफेर करता है — विशेष वर्णों को एस्केप करें या पैरामीटर वाले API का उपयोग करें
- सार्वभौमिक नियम: अविश्वसनीय डेटा को संरचना से बाहर रखें
एआई शिक्षक के साथ सुरक्षित कोडिंग और बैकएंड के लिए OWASP के शीर्ष 10 सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 12
- पाठ
- 48
अक्सर पूछे जाने वाले प्रश्न
क्या “XML और LDAP इंजेक्शन की रोकथाम” पाठ निःशुल्क है?
हाँ — सुरक्षित कोडिंग और बैकएंड के लिए OWASP के शीर्ष 10 अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “XML और LDAP इंजेक्शन की रोकथाम” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। सुरक्षित कोडिंग और बैकएंड के लिए OWASP के शीर्ष 10 पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“XML और LDAP इंजेक्शन की रोकथाम” में मैं क्या सीखूँगा?
इंजेक्शन से बचाव को SQL और कमांड से आगे XML (XXE) तथा LDAP तक बढ़ाएँ। जानें कि अविश्वसनीय इनपुट इन इंटरप्रेटरों को कैसे दूषित करता है और उसे निष्प्रभावी कैसे करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ सुरक्षित कोडिंग और बैकएंड के लिए OWASP के शीर्ष 10 का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या सुरक्षित कोडिंग और बैकएंड के लिए OWASP के शीर्ष 10 शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर सुरक्षित कोडिंग और बैकएंड के लिए OWASP के शीर्ष 10 शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।
“XML और LDAP इंजेक्शन की रोकथाम” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस सुरक्षित कोडिंग और बैकएंड के लिए OWASP के शीर्ष 10 पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर सुरक्षित कोडिंग और बैकएंड के लिए OWASP के शीर्ष 10 पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- SQL इंजेक्शन की रोकथाम
- कमांड और कोड इंजेक्शन
- बैकएंड में क्रॉस-साइट स्क्रिप्टिंग (XSS)
- XML और LDAP इंजेक्शन की रोकथाम