एक एसक्यूएल इंजेक्शन एक दुर्भावनापूर्ण रूप से गठित एसक्यूएल क्वेरी है जो किसी SQL डेटाबेस को "भ्रमित" करने के लिए उपयोग किया जाता है जो कुछ नहीं करना चाहिए। उदाहरण के लिए, निम्नलिखित प्रश्न
"SELECT * FROM `users` WHERE `username` = '$name'";
सामान्य स्थिति में, यह काम करेगा। अगर हम इसे 'जैक' जमा करते हैं, तो यह जैक नाम के सभी उपयोगकर्ताओं को वापस कर देगा। हालांकि, एक उपयोगकर्ता डालता है तो कहते हैं कि " 'या 1 = 1", जिसके परिणामस्वरूप क्वेरी
"SELECT * FROM `users` WHERE `username` = '' OR 1=1";
होगा के बाद से 1 हमेशा 1 के बराबर होती है, और combinating खंड है या, इस हर पंक्ति, पर सच वापस आ जाएगी जो बदले में दुर्भावनापूर्ण उपयोगकर्ता को हर पंक्ति प्रदर्शित करेगा। इस तकनीक का उपयोग करके, कोई आपका संपूर्ण डेटाबेस देख सकता है। भी विचार किसी तरह कुछ प्रस्तुत करता है, तो " '; ड्रॉप तालिका users
", - जिसके परिणामस्वरूप, जो
"SELECT * FROM `users` WHERE `username` = ''; DROP TABLE `users`";--";
कौन से दो प्रश्नों है, जिनमें से कोई कार्य नहीं करेगा, दूसरा जो पूरे उन डेटाबेस को हटाने का परिणाम होती, आपके डेटा के नुकसान में।
एसक्यूएल इंजेक्शन को रोकने के लिए सबसे अच्छी विधि तैयार बयानों का उपयोग करना है। इन के साथ, आप ऐसा है जैसे
"SELECT * FROM `users` WHERE `username` = '?'";
कुछ इस सुविधा देता है डेटाबेस क्वेरी (जहां उपयोगकर्ता नाम कुछ मूल्य के बराबर होती है) का स्वरूप पता SQL डेटाबेस के लिए एक प्रश्न भेजने के लिए, ताकि कोई भ्रम जब एक सादा पाठ दिया है क्वेरी। फिर डेटाबेस एक मान की अपेक्षा करता है, और इसे कहां रखा जाए। फिर आप उस मान को डेटाबेस में पास करते हैं जिसे वह खोज के लिए उपयोग कर सकता है।यह भी बेहतर है क्योंकि डेटाबेस तेज खोज के लिए क्वेरी को अनुकूलित कर सकता है।
तैयार बयानों पर पढ़ें, जो इसे और विस्तार से समझाएगा।
क्या आपने डुप्लिकेट प्रश्नों की जांच की ??? –
यह नीचे मतदान किया जाएगा, जब भी मैं एसक्यूएल इंजेक्शन के बारे में पूछता हूं, हर कोई बाहर निकलता है। आपके खिलाफ रक्षा बनाने के लिए यह जानने की जरूरत है कि इसका फायदा कैसे उठाया जाए! एक तालाब को यह जानने की जरूरत है कि उसका ताला कैसे उठाया जाए ताकि वह अंततः इसे मजबूत बना सके –
डुप: http://stackoverflow.com/questions/601300/what-is-sql-injection http://stackoverflow.com/questions/ 1819122/कैसे-टू-पुष्टिकरण-एसक्यूएल-इंजेक्शन http://stackoverflow.com/questions/3470415/is-this-query-injection-proof http://stackoverflow.com/questions/2216107/what-is-sql- इंजेक्शन – alexy13