Rumah >pangkalan data >tutorial mysql >Adakah `mysql_real_escape_string()` Masih Selamat Terhadap SQL Injection?

Adakah `mysql_real_escape_string()` Masih Selamat Terhadap SQL Injection?

Susan Sarandon
Susan Sarandonasal
2024-12-07 14:41:11783semak imbas

Is `mysql_real_escape_string()` Still Secure Against 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!

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