Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

mysql_real_escape_string tidak cukup baik?

Penalaran dari nama metode queryAsArray , sepertinya Anda menggunakan DbBase ini kelas dari komentar halaman manual fungsi MySQL . Jika demikian, ini adalah query metode yang menghilangkan karakter escape dari tanda kutip yang lolos:

function query($sql, &$records = null){
    $sql = str_replace(array('\\"', "\\'"), array('"', "'"), $sql);
    // …
}

Maka bukan keajaiban bahwa contoh Anda berhasil (saya menyederhanakannya):

$input = "', BAD SQL INJECTION --";

$sql = "SELECT '".mysql_real_escape_string($input)."'";
var_dump($sql);  // string(33) "SELECT '\', BAD SQL INJECTION --'"
//                      everything’s OK ↑

$sql = str_replace(array('\\"', "\\'"), array('"', "'"), $sql);
var_dump($sql);  // string(32) "SELECT '', BAD SQL INJECTION --'"
//                                Oops! ↑


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menarik data dari database MySQL ke dalam stylesheet di file/foldernya sendiri?

  2. Praktik terbaik dalam menampilkan hasil penelusuran dengan cuplikan teks terkait dari hasil sebenarnya

  3. Buat kolom spasial MySQL - Tipe Data Titik dengan panjang lat tanpa menggunakan tabel Alter

  4. Menghubungkan ke instans Amazon RDS melalui instans EC2 menggunakan MySQL Workbench

  5. COUNT(id) vs. COUNT(*) di MySQL