Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Adakah `mysql_real_escape_string()` Benar-benar Selamat: Bolehkah Pengekodan Aksara Asia Melangkaui Perlindungannya?

Adakah `mysql_real_escape_string()` Benar-benar Selamat: Bolehkah Pengekodan Aksara Asia Melangkaui Perlindungannya?

Susan Sarandon
Susan Sarandonasal
2024-10-26 18:17:02829semak imbas

Is `mysql_real_escape_string()` Truly Safe: Can Asian Character Encodings Bypass its Protection?

Adakah mysql_real_escape_string() Melindungi Sepenuhnya Terhadap SQL Injection?

Tuntutan baru-baru ini diedarkan bahawa mysql_real_escape_string() boleh dipintas dengan beberapa aksara Asia , khususnya Big5 dan GBK. Adakah pernyataan ini sah, dan jika ya, bagaimanakah anda boleh melindungi tapak web anda tanpa menggunakan pernyataan yang disediakan?

Kerentanan

Menurut Stefan Esser, mysql_real_escape_string() memberikan kelemahan apabila arahan SET NAMES digunakan. Perintah ini mengubah pengekodan aksara, menjadikan mysql_real_escape_string() tidak menyedari pengekodan berbilang bait tertentu yang menggunakan garis miring ke belakang sebagai bait tambahan. Melarikan diri yang salah ini boleh menjejaskan keselamatan tapak web anda.

Perlindungan

Walaupun pengekodan UTF-8 tidak terdedah kepada eksploitasi ini, adalah penting untuk menggunakan mysql_set_charset untuk mengubah pengekodan dengan selamat . Fungsi ini, bagaimanapun, hanya tersedia dalam versi PHP yang lebih baharu. Jika anda tidak boleh menggunakan penyata yang disediakan atau mysql_set_charset, anda mungkin perlu meneroka kaedah alternatif untuk melindungi tapak web anda daripada serangan suntikan SQL.

Atas ialah kandungan terperinci Adakah `mysql_real_escape_string()` Benar-benar Selamat: Bolehkah Pengekodan Aksara Asia Melangkaui Perlindungannya?. 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