Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Adakah mysql_real_escape_string() Masih Perlindungan Boleh Dipercayai Terhadap Suntikan SQL?

Adakah mysql_real_escape_string() Masih Perlindungan Boleh Dipercayai Terhadap Suntikan SQL?

Susan Sarandon
Susan Sarandonasal
2024-11-11 16:31:03636semak imbas

Is mysql_real_escape_string() Still a Reliable Protection Against SQL Injection?

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:

Proofcode
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.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn