"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > क्या SQL इंजेक्शन `mysql_real_escape_string ()` `चरित्र एन्कोडिंग मुद्दों के कारण कर सकता है?

क्या SQL इंजेक्शन `mysql_real_escape_string ()` `चरित्र एन्कोडिंग मुद्दों के कारण कर सकता है?

2025-02-20 पर पोस्ट किया गया
ब्राउज़ करें:942

Can SQL Injection Bypass `mysql_real_escape_string()` Due to Character Encoding Issues?

] ]

निम्नलिखित PHP कोड पर विचार करें: ] $ पासवर्ड = MySQL_REAL_ESCAPE_STRING (getFrompost ('पासवर्ड')); $ sql = "चयन * तालिका से जहां लॉगिन = '$ लॉगिन' और पासवर्ड = '$ पासवर्ड'";

यह कोड सुरक्षित लगता है, लेकिन चरित्र सेट एन्कोडिंग के किनारे के मामले के कारण इसका शोषण किया जा सकता है।

हमला विधि:

हमले निम्नलिखित चरणों पर निर्भर करते हैं:
$login = mysql_real_escape_string(GetFromPost('login'));
$password = mysql_real_escape_string(GetFromPost('password'));

$sql = "SELECT * FROM table WHERE login='$login' AND password='$password'";
] उद्धरणों से पहले एक बैकस्लैश डालें, जिसके परिणामस्वरूप एक वाक्यविन्यास मान्य स्ट्रिंग है।

]

काम के सिद्धांत:

] हालांकि

mysql_real_escape_string ()
    क्लाइंट द्वारा सेट किए गए कनेक्शन एन्कोडिंग के आधार पर बच गया है, कुछ मामलों में यह अमान्य मल्टीबाइट वर्णों को एकल बाइट के रूप में मानता है, जिसमें
  1. सेट नाम के बजाय का उपयोग करना शामिल है। mysql_set_charset ()
  2. मामला।
  3. के परिणाम स्वरूप:
  4. ] उपचार: इस समस्या को कम करने के लिए गैर-वर्धित वर्ण सेट का उपयोग करें, जैसे कि UTF8MB4 या UTF8, इस समस्या को कम करने के लिए। NO_BACKSLASH_ESCAPES SQL मोड सक्षम करें भी सुरक्षा प्रदान करता है।
  5. सुरक्षित उदाहरण:
  6. ] Mysqli में वास्तविक प्रीप्रोसेसिंग बयान भी इस हमले के लिए प्रतिरक्षा हैं।

निष्कर्ष के तौर पर:

]

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3