Rumah > pangkalan data > tutorial mysql > Adakah `mysql_real_escape_string()` adalah Pertahanan yang Boleh Dipercayai Terhadap Suntikan SQL dalam Semua Pengekodan Aksara?

Adakah `mysql_real_escape_string()` adalah Pertahanan yang Boleh Dipercayai Terhadap Suntikan SQL dalam Semua Pengekodan Aksara?

Mary-Kate Olsen
Lepaskan: 2024-12-01 03:21:17
asal
168 orang telah melayarinya

Is `mysql_real_escape_string()` a Reliable Defense Against SQL Injection in All Character Encodings?

Adakah mysql_real_escape_string() Perisai Kekal Terhadap Suntikan SQL?

Bahagian di justinshattuck.com mencadangkan bahawa mysql_real_escape_string tertentu() Pengekodan aksara Asia. Secara khusus, ia mendakwa bahawa pengekodan memintas mysql_real_escape_string() menggunakan BIG5 atau GBK untuk menyeludup aksara berbahaya ke dalam pertanyaan.

Adakah Kerentanan Ini Nyata?

Menurut Stefan Esser, jawapannya adalah ya yang membingungkan. Dia mendakwa bahawa mysql_real_escape_string() goyah apabila SET NAMES digunakan. Kaedah ini menukar pengekodan untuk memenuhi keperluan aplikasi tanpa memaklumkan mysql_real_escape_string(). Akibatnya, jika pengekodan berbilang bait membenarkan garis miring ke belakang sebagai bait kedua, ketiga atau keempat, masalah akan berlaku. Mysql_real_escape_string() tetap tidak menyedari ketidakteraturan ini dan gagal melepaskan aksara dengan betul.

Melindungi Tapak Web Anda

Esser mencadangkan bahawa UTF-8 kekal sebagai pengekodan yang selamat, tetapi UTF -8 tidak selalu menjadi pilihan. Malangnya, mysql_set_charset, alternatif yang lebih selamat, hanya tersedia dalam versi PHP terkini.

Atas ialah kandungan terperinci Adakah `mysql_real_escape_string()` adalah Pertahanan yang Boleh Dipercayai Terhadap Suntikan SQL dalam Semua Pengekodan Aksara?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan