यह तब तक होगा जब तक आप पोस्ट किए गए name
. में सिंगल कोट्स शामिल नहीं करते हैं , जो आपको उद्धरणों से बाहर निकलने की अनुमति देगा। उदाहरण, नाम को इस प्रकार पोस्ट करें:
' or 1 or '
WHERE क्लॉज बन जाता है:
WHERE id = '' or 1 or '';
यह or 1
. के कारण तालिका में सभी पंक्तियों से मेल खाएगा और पुनर्प्राप्त करेगा अंश। जैसा कि आप देख सकते हैं, यह कुछ SQL को इंजेक्ट करने के लिए कोट्स से अलग हो जाता है, फिर यह क्वेरी को मान्य बनाने के लिए कोट्स में वापस चला जाता है।
नहीं, लेकिन अगर इसे mysqli_multi_query
. के साथ निष्पादित किया गया था तो हाँ आप अंत में एक से अधिक प्रश्न जोड़ सकते हैं।
आम तौर पर हाँ लेकिन एक तैयार विवरण बेहतर होगा। एस्केपिंग का उपयोग करते हुए, WHERE
क्लॉज बन जाएगा (ऊपर मेरे उदाहरण का उपयोग करके):
WHERE id = '\' or 1 or \'';
यह अब असुरक्षित नहीं है क्योंकि उद्धरणों को तोड़ा नहीं जा सकता है, और केवल पंक्तियों से मेल खाएगा यदि name
शाब्दिक रूप से ' or 1 or '
. से मेल खाता है जो स्पष्ट रूप से असंभव है।