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