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

कौन से वर्ण वास्तव में MySQL में SQL इंजेक्शन उत्पन्न करने में सक्षम हैं?

नीचे दी गई पंक्तियों को ध्यान में रखते हुए mysql_real_escape_string() मैनुअल:

MySQL में SQL इंजेक्शन अकेले इन विशेष वर्णों के साथ संभव नहीं होना चाहिए:\b \0 \n \r \t \Z

हालाँकि स्ट्रिंग लिटरल्स मैनुअल निम्नलिखित बताता है लेकिन निर्दिष्ट कारण (या नहीं) SQL इंजेक्शन से संबंधित नहीं हैं:

इसके अलावा, एक साधारण परीक्षण में, मौसम की परवाह किए बिना उपरोक्त सूचीबद्ध विशेष वर्ण बच गए हैं या नहीं, MySQL ने समान परिणाम प्राप्त किए। दूसरे शब्दों में MySQL ने भी बुरा नहीं माना:

$query_sql = "SELECT * FROM `user` WHERE user = '$user'";

उपरोक्त क्वेरी ने उन उपरोक्त सूचीबद्ध वर्णों के गैर-एस्केप्ड और एस्केप्ड संस्करणों के लिए समान रूप से काम किया जैसा कि नीचे रखा गया है:

$user = chr(8);     // Back Space
$user = chr(0);     // Null char
$user = chr(13);    // Carriage Return
$user = chr(9);     // Horizontal Tab
$user = chr(26);    // Substitute
$user = chr(92) .chr(8);    // Escaped Back Space
$user = chr(92) .chr(0);    // Escaped Null char
$user = chr(92) .chr(13);   // Escaped Carriage Return
$user = chr(92) .chr(9);    // Escaped Horizontal Tab
$user = chr(92) .chr(26);   // Escaped Substitute

परीक्षण तालिका और साधारण परीक्षण में प्रयुक्त डेटा:

-- Table Structure

CREATE TABLE IF NOT EXISTS `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user` varchar(10) CHARACTER SET utf8 NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8;

-- Table Data

INSERT INTO `user` ( `user` ) VALUES
( char( '8' ) ),
( char( '0' ) ),
( char( '10' ) ),
( char( '13' ) ),
( char( '9' ) ),
( char( '26' ) );


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. वर्तमान आइटम आईडी के आसपास N पिछला और M अगला आइटम चुनें

  2. Mysql सशर्त तर्क के साथ चयन करें

  3. mysql क्वेरी रूम उपलब्धता

  4. mysql में एक कॉलम द्वारा कुल पंक्तियों की गणना और समूह बनाना

  5. MySQL प्रत्येक अद्वितीय मान की पहली घटना पर पंक्तियों का चयन करें