Adakah mysql_real_escape_string() Terdedah kepada SQL Injection?
Kebimbangan telah dibangkitkan mengenai keberkesanan mysql_real_escape_string() dalam menghalang suntikan SQL. Beberapa artikel lama mencadangkan bahawa fungsi ini mungkin mempunyai kelemahan.
Bolehkah mysql_real_escape_string() Digunakan dengan Selamat?
Jawapan kepada soalan ini terletak pada memahami batasan fungsi. Menurut dokumentasi MySQL C API:
If you need to change the character set of the connection, you should use the mysql_set_character_set() function rather than executing a SET NAMES (or SET CHARACTER SET) statement. mysql_set_character_set() works like SET NAMES but also affects the character set used by mysql_real_escape_string(), which SET NAMES does not.
Oleh itu, untuk memastikan keselamatan maksimum, adalah penting untuk menggunakan mysql_set_charset() untuk menukar pengekodan, bukannya SET NAMES/SET CHARACTER SET. Ini kerana mysql_set_charset() sejajar dengan fungsi mysql_set_character_set() MySQL, yang mempengaruhi set aksara yang digunakan oleh mysql_real_escape_string().
Dengan mengikuti garis panduan ini, anda boleh menggunakan mysql_real_escape_string() dengan berkesan untuk melindungi anda daripada SQL injection. .
Atas ialah kandungan terperinci Adakah mysql_real_escape_string() Masih Perlindungan Terhadap Suntikan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!