Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL इंजेक्शन क्वेरी

यह तब तक होगा जब तक आप पोस्ट किए गए 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 ' . से मेल खाता है जो स्पष्ट रूप से असंभव है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL का उपयोग करके पर्सेंटाइल वैल्यू की गणना करें

  2. मैं MySQL में पूरे परिणाम सेट को कैसे जोड़ूं?

  3. MySQL में एक महीने में दिनों की संख्या कैसे प्राप्त करें

  4. MySQL:कंप्यूटेड कॉलम

  5. mysql के साथ वर्णसेट मुद्दा