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

bind_param () केवल उपयोगकर्ता द्वारा इनपुट किए गए मानों या सभी पर आवश्यक है?

तकनीकी रूप से आप जोखिम में नहीं हैं यदि आप डेटा तैयार नहीं करते हैं जो उपयोगकर्ता इनपुट से नहीं आ रहा है। हालांकि, कुछ कारणों से ऐसा करने की जोरदार सलाह दी जाती है:

  1. यदि आप किसी उपयोगकर्ता इनपुट डेटा को कहीं तैयार करना भूल जाते हैं, तो इस उपयोगकर्ता ने डेटा पंक्ति में कुछ ऐसी विविध सामग्री डालने की संभावना है जिसकी आपने कभी उपयोगकर्ता इनपुट होने की उम्मीद नहीं की थी।
  2. अपने सर्वर को सुरक्षित रखने के लिए आप जो कर रहे हैं उसे दोहराना एक अच्छा अभ्यास है। यदि आप इसे मिलाना शुरू करते हैं, तो आप डेटा तैयार करना भूल सकते हैं जहां वास्तव में ऐसा करने की आवश्यकता होती है।
  3. अपना डेटा तैयार करना केवल हमलावरों से SQL इंजेक्शन को रोकने के लिए नहीं है। यदि आप गलती से अपने कोड में कोई बग बनाते हैं तो यह कुछ डेटाबेस समस्याओं को भी रोकेगा। उदाहरण के लिए:

आपके कोड में कहीं न कहीं आपके पास एक लॉग सिस्टम है जो आपके डेटाबेस में एक त्रुटि लॉग जोड़ता है। स्ट्रिंग होगी:


यह स्ट्रिंग आपकी स्क्रिप्ट द्वारा बनाई गई है। इसलिए आप इसे तैयार न करें। फिर भी इस स्ट्रिंग के अंदर के उद्धरण आपके डेटाबेस में त्रुटियों का कारण बनेंगे जिन्हें यदि आप इसे वैसे भी तैयार करते तो रोका जा सकता था।



  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-apt-config [उबंटू 14.04] में 'ओके' का चयन नहीं कर सका

  2. PostgreSQL और MySQL क्रॉस प्रतिकृति का अवलोकन

  3. मैं पैरामीटर के रूप में MySQL में दिनांक कैसे सम्मिलित करूं?

  4. मैसकल:एकाधिक टेबल या एक बड़ी टेबल?

  5. MySQL में किसी तालिका से कॉलम कैसे हटाएं