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

Mysql_query के लिए मापदंडों का उपयोग

सबसे पहले, इसके बारे में क्या कहा जाता है SQL-Injection . यह मूल रूप से उपयोगकर्ता इनपुट के माध्यम से डेटाबेस के विरुद्ध प्रश्नों को बदलने की संभावना है।

आइए एक उदाहरण देखें:

प्रश्न:

SELECT temp1 FROM temp WHERE temp2 = 'VAR1';

अब हम VAR1 को निम्न का मान निर्दिष्ट करेंगे:'; DROP TABLE *; -- और हम प्राप्त करेंगे:

SELECT temp1 FROM temp WHERE temp2 = ''; DROP TABLE *; --';

mysql_real_escape_string . के साथ यह इस तरह दिखेगा:

SELECT temp1 FROM temp WHERE temp2 = '\'; DROP TABLE *; --'

mysql_real_escape_string किसी क्वेरी में उपयोग के लिए स्ट्रिंग को 'सुरक्षित' करता है।

लेकिन अंत में, आपको mysql_* . का उपयोग करना बंद कर देना चाहिए पूरी तरह से . जब SQL इंजेक्शन या प्रश्नों के साथ छेड़छाड़ करने के अन्य साधनों को रोकने की बात आती है तो उन्हें बहिष्कृत कर दिया जाता है और असुरक्षित माना जाता है।

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

PHP के लिए दो एक्सटेंशन हैं जो संपूर्ण mysql_* . को बंद करने के लिए डिज़ाइन किए गए हैं खोला गया:

और मैं इसे फिर से कहता हूं:कृपया mysql_* using का उपयोग करना बंद करें !



  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 त्रुटि 2002 (HY000):सॉकेट के माध्यम से स्थानीय MySQL सर्वर से कनेक्ट नहीं हो सकता '/var/run/mysqld/mysqld.sock' (2)

  2. स्ट्रिंग में बड़े अक्षरों की गणना करें

  3. MySql इनर जॉइन विद WHERE क्लॉज

  4. Paramiko SSH के माध्यम से SQLAlchemy

  5. ईमेल के माध्यम से सत्यापन लिंक