हां, यह निश्चित रूप से संभव है।
आप एक रूप है जहाँ आप एक पूर्णांक अपने अगले SELECT कथन करने की अपेक्षा है, तो आप समान कुछ भी लिख सकते हैं:
चुनें * thingy
से कहां attributeID =
- 5 (अच्छा जवाब है, कोई समस्या नहीं)
- 5; डीआरओपी तालिका
users
; (बुरा, बुरा, बुरा ...)
निम्नलिखित वेबसाइट का विवरण शास्त्रीय एसक्यूएल इंजेक्शन टेक्निक्स: SQL Injection cheat sheet है।
पैरामीट्रिज्ड प्रश्नों या संग्रहीत प्रक्रियाओं का उपयोग करना बेहतर नहीं है। ये पास पैरामीटर का उपयोग कर पूर्व-निर्मित प्रश्न हैं, जो इंजेक्शन का स्रोत भी हो सकते हैं। यह इस पृष्ठ पर भी वर्णित है: Attacking Stored Procedures in SQL।
अब, अगर आप सरल बोली को दबाने, आप का दौरा पड़ने से केवल एक सेट को रोकने के। पर उनमें से सभी नहीं।
हमेशा के रूप में, बाहर से आने वाले डेटा पर भरोसा न करें। उन्हें इन 3 स्तरों पर फ़िल्टर करें:
- स्पष्ट सामान के लिए इंटरफ़ेस स्तर (एक बूंद नीचे चयन सूची एक नि: शुल्क पाठ क्षेत्र से बेहतर है) डेटा प्रकृति से संबंधित जांच के लिए
- तार्किक स्तर (पूर्णांक, स्ट्रिंग, लंबाई) , अनुमतियाँ (डेटा के इस प्रकार इस पेज पर इस उपयोगकर्ता द्वारा इस्तेमाल किया जा सकता) ...
- डाटाबेस पहुँच स्तर (भागने सरल बोली ...)।
मज़े और भूलने के जवाब के लिए WikiPedia जाँच करने के लिए नहीं है।
/सर्वेक्षण
यह ध्यान दिया जाना चाहिए कि केवल तब होता है जब आपका सिस्टम आपको एक साथ कई SQL क्वेरी निष्पादित करने की अनुमति देता है। PHP का 'mysql_query' नहीं है। – DisgruntledGoat