] जबकि कुछ ने तर्क दिया है कि फ़ंक्शन का गलत उपयोग दोष देना है, दूसरों ने इसकी अंतर्निहित सीमाओं के बारे में चिंता जताई है। यह SQL स्टेटमेंट में एकल उद्धरणों के भीतर उपयोग के लिए इच्छित पाठ मूल्यों से बचने के लिए डिज़ाइन किया गया है, जैसा कि नीचे देखा गया है:
$ मूल्य = mysql_real_escape_string ($ मूल्य, $ लिंक);
$ sql = "...` foo` = '$ मूल्य' ... "; mysql_real_escape_string
एक हमले का एक उदाहरण जो mysql_real_escape_string को बायपास कर सकता है जब इसका उपयोग संख्यात्मक मानों से बचने के लिए किया जाता है। निम्नलिखित क्वेरी पर विचार करें:
mysql_query ('उपयोगकर्ताओं से हटाएं जहां user_id =' .mysql_real_escape_string ($ इनपुट)); क्वेरी सभी उपयोगकर्ताओं को हटा देगा, क्योंकि "या 1 = 1" स्थिति हमेशा सच होती है। यह हमला संदर्भ के आधार पर सही डेटा प्रकारों और भागने के तरीकों का उपयोग करने के महत्व को प्रदर्शित करता है। यदि डेटाबेस कनेक्शन एन्कोडिंग सही ढंग से सेट नहीं किया गया है, तो यह MySQL_REAL_ESCAPE_STRING स्ट्रिंग्स से बचने के बीच विसंगतियों को जन्म दे सकता है और डेटाबेस उनकी व्याख्या कैसे करता है। यह विसंगति विशिष्ट परिस्थितियों में कमजोरियां पैदा कर सकती है, खासकर जब मल्टीबाइट स्ट्रिंग्स से निपटने के लिए। वैकल्पिक दृष्टिकोणों का उपयोग करना उचित है जैसे कि तैयार स्टेटमेंट, पैरामीटर किए गए क्वेरी, या अधिक आधुनिक डेटाबेस एपीआई जो इंजेक्शन कमजोरियों के खिलाफ अधिक मजबूत सुरक्षा प्रदान करते हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3