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

नोड-mysql में SQL इंजेक्शन को रोकने के लिए सर्वोत्तम अभ्यास क्या हैं?

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

उदाहरण के लिए इन दोनों में बहुत बड़ा अंतर है:"test" और "'test'"

आम तौर पर केवल हानिकारक पात्र ही बच जाते हैं, बाकी को वैसे ही छोड़ दिया जाता है।

निम्न-स्तरीय ड्राइवर का उपयोग करने से सबसे अच्छा बचा जाता है। Sequelize जैसी लाइब्रेरी आज़माएं और उपयोग करें कुछ अमूर्तता और अधिक सहायता प्रदान करने के लिए। वह मॉड्यूल प्लेसहोल्डर स्टेटमेंट का समर्थन करता है जो आम तौर पर एक गैर-मुद्दे से बचने के लिए होता है, इसे स्वचालित रूप से नियंत्रित किया जाता है।

प्रतिस्थापन वाली कच्ची क्वेरी पर अनुभाग देखें जहां आप ऐसा करने की क्षमता रखते हैं:

sequelize.query('SELECT * FROM projects WHERE status = ?',
  { replacements: ['active'], type: sequelize.QueryTypes.SELECT }
).then(function(projects) {
  console.log(projects)
})

उपयोगकर्ता डेटा के लीक होने का कोई खतरा नहीं है क्योंकि आपने इसे एक स्पष्ट मूल्य के रूप में आपूर्ति की है जिसे ठीक से संभाला जाता है, न कि क्वेरी में एक इनलाइन स्ट्रिंग।



  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. Laravel 5.6 withCount and where Statement

  3. क्या mysql CLI टूल बाइनरी डेटा को कंसोल-फ्रेंडली तरीके से प्रदर्शित करने का एक तरीका प्रदान करता है?

  4. डुप्लिकेट डेटा को mysql डेटाबेस में दर्ज होने से रोकें

  5. कई मापदंडों के साथ स्ट्रिंग को प्रारूपित करें ताकि MySQL उन्हें संसाधित कर सके