Menilai Integriti mysql_real_escape_string()
Kebimbangan telah dibangkitkan mengenai kebolehpercayaan mysql_real_escape_string() dalam melindungi pertanyaan pangkalan data serangan suntikan SQL . Pengkritik merujuk artikel lama yang mencadangkan potensi kelemahan dalam keupayaan fungsi untuk menyediakan perlindungan yang mencukupi.
Dokumentasi MySQL
Dokumentasi MySQL C API untuk mysql_real_escape_string() mengakui kebimbangan ini:
ProofcodeIf 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.
Dengan menggunakan mysql_set_charset() untuk mengubah suai pengekodan sebelum menggunakan mysql_real_escape_string(), anda memastikan set aksara ditetapkan dengan betul dan fungsi itu beroperasi seperti yang dimaksudkan. Ini menangani kebimbangan tentang potensi kelemahan dan membolehkan mysql_real_escape_string() melindungi secara berkesan daripada serangan suntikan SQL.
Atas ialah kandungan terperinci Adakah mysql_real_escape_string() Masih Perlindungan Boleh Dipercayai Terhadap Suntikan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!