Rumah >pangkalan data >tutorial mysql >Adakah `mysql_real_escape_string()` Masih Selamat Terhadap SQL Injection?
Adakah mysql_real_escape_string() Fungsi Patah?
Kebimbangan telah dibangkitkan tentang keberkesanan mysql_real_escape_string() walaupun mengurangkan kebolehgunaan suntikan SQL penggunaan yang betul. Skeptik memetik artikel lama sebagai bukti kelemahannya.
Bolehkah mysql_real_escape_string() Masih Digunakan?
Untuk menjawab soalan ini, kami menyelidiki dokumentasi MySQL C API untuk mysql_real_escape_string():
"Jika anda perlu menukar set aksara sambungan, gunakan mysql_set_character_set() dan bukannya melaksanakan SET NAMES."
Demonstrasi Kod:
mysql_real_escape_string()
Penjelasan:
Menurut dokumentasi, mysql_set_character_set() mempengaruhi set aksara yang digunakan oleh mysql_real_escape_string(), tidak seperti SET NAMES. Oleh itu, anda harus menggunakan mysql_set_charset() untuk menukar pengekodan dalam aplikasi PHP.
Kesimpulan:
Walaupun mysql_real_escape_string() mungkin tidak rosak sepenuhnya, adalah penting untuk gunakannya bersama-sama dengan mysql_set_character_set() untuk memastikan pengendalian set aksara yang betul dan menghalang potensi kelemahan suntikan SQL.
Atas ialah kandungan terperinci Adakah `mysql_real_escape_string()` Masih Selamat Terhadap SQL Injection?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!