एसक्यूएल इंजेक्षन

लेखक: Peter Berry
निर्माण की तारीख: 13 अगस्त 2021
डेट अपडेट करें: 1 जून 2024
Anonim
शुरुआती के लिए SQL इंजेक्शन - अभी एक प्रो हैकर से सीखें
वीडियो: शुरुआती के लिए SQL इंजेक्शन - अभी एक प्रो हैकर से सीखें

विषय

परिभाषा - SQL इंजेक्शन का क्या अर्थ है?

SQL इंजेक्शन एक कंप्यूटर अटैक है जिसमें दुर्भावनापूर्ण कोड को खराब तरीके से डिज़ाइन किए गए एप्लिकेशन में एम्बेड किया जाता है और फिर बैकएंड डेटाबेस में भेज दिया जाता है। दुर्भावनापूर्ण डेटा तब डेटाबेस क्वेरी परिणाम या क्रियाएं उत्पन्न करता है जिन्हें कभी निष्पादित नहीं किया जाना चाहिए।


Microsoft Azure और Microsoft क्लाउड का परिचय | इस गाइड के दौरान, आप जानेंगे कि क्लाउड कंप्यूटिंग क्या है और Microsoft Azure आपको क्लाउड से अपना व्यवसाय चलाने और चलाने में कैसे मदद कर सकता है।

Techopedia SQL इंजेक्शन की व्याख्या करता है

SQL इंजेक्शन हमले के एक उदाहरण से गुजरते हैं:

बैंक के कार्यों को चलाने वाले एप्लिकेशन में ऐसे मेनू होते हैं जिनका उपयोग ग्राहक के सामाजिक सुरक्षा नंबर जैसे डेटा बिंदुओं का उपयोग करके ग्राहक विवरणों को खोजने के लिए किया जा सकता है। पृष्ठभूमि में अनुप्रयोग एक SQL क्वेरी को कॉल करता है जो डेटाबेस में चलने वाले खोज मूल्यों को निम्न प्रकार से चलाती है:

ग्राहक का चयन करें_नाम, टेलीफोन, पता, दिनांक_ऑफ_बर्थ जहां सामाजिक_सेक_नो = 23425

इस नमूना स्क्रिप्ट में, उपयोगकर्ता एप्लिकेशन मेनू विंडो में 23425 मूल्य दर्ज करता है, जिससे उपयोगकर्ता सामाजिक सुरक्षा नंबर दर्ज करने का अनुरोध करता है। फिर, उपयोगकर्ता द्वारा प्रदान किए गए मूल्य का उपयोग करते हुए, डेटाबेस में एक SQL क्वेरी चलती है।

SQL ज्ञान वाला उपयोगकर्ता एप्लिकेशन को समझ सकता है और सामाजिक सुरक्षा नंबर के लिए पूछे जाने पर एक मान दर्ज करने के बजाय, स्ट्रिंग "23425 या 1 = 1" दर्ज करें, जो डेटाबेस में निम्नानुसार है:

चुनें ग्राहक_नाम, टेलीफोन, पता, दिनांक_ऑफ_बर्थ जहां सामाजिक_सेक_नहीं = 23425 या 1/1

WHERE क्लॉज महत्वपूर्ण है क्योंकि यह भेद्यता का परिचय देता है। डेटाबेस में, शर्त 1 = 1 हमेशा सत्य होती है, और क्‍योंकि क्‍लाइंट को ग्राहक सामाजिक सुरक्षा नंबर विवरण (23425) या WHERE 1 = 1 पर वापस करने के लिए निर्दिष्ट किया गया है, क्वेरी तालिका में सभी पंक्तियों को लौटा देगी, जो कि नहीं थी असली भावना।

उपरोक्त SQL इंजेक्शन हमला उदाहरण सरल है, लेकिन यह दिखाता है कि बैकएंड डेटाबेस क्वेरी या कमांड चलाने में एप्लिकेशन को छल करने के लिए भेद्यता का शोषण कैसे किया जाता है।

SQL इंजेक्शन के हमलों को उचित अनुप्रयोग डिज़ाइन, विशेष रूप से मॉड्यूल में डेटाबेस क्वेरी या कमांड चलाने के लिए उपयोगकर्ता इनपुट की आवश्यकता को सुनिश्चित करके कम किया जा सकता है। उपरोक्त उदाहरण में, एप्लिकेशन को बदला जा सकता है ताकि यह केवल एक संख्यात्मक मान को स्वीकार करे।