Walaupun penggunaannya meluas, mysql_real_escape_string() tidak kebal daripada serangan suntikan SQL.
Keperluan: Sambungan pangkalan data mesti menggunakan set aksara yang terdedah seperti big5, cp932, gb2312, gbk atau sjis.
Langkah:
Keputusan: Disebabkan oleh ketidakpadanan pengekodan pelayan pelanggan, pertanyaan itu mengandungi petikan tunggal yang tidak dapat dielakkan, menghasilkan suntikan SQL yang berjaya.
Pepijat masuk mysql_real_escape_string(): Dalam versi MySQL yang terdahulu, aksara multibait yang tidak sah dianggap sebagai bait tunggal untuk tujuan melarikan diri, walaupun pelanggan mengetahui pengekodan sambungan.
Kerentanan PDO: Kenyataan yang disediakan yang ditiru dalam PDO dibina menggunakan mysql_real_escape_string() dan oleh itu terdedah kepada serangan ini.
Amalan selamat:
Atas ialah kandungan terperinci Bolehkah SQL Injection Bypass `mysql_real_escape_string()` Menggunakan Manipulasi Set Aksara?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!