Adakah "mysqli_real_escape_string" Mencukupi untuk Mencegah Serangan SQL?
Kod yang disediakan menggunakan mysqli_real_escape_string untuk melindungi daripada suntikan SQL. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa fungsi ini sahaja tidak mencukupi untuk perlindungan lengkap.
Kerentanan kepada SQL Injection
Walaupun menggunakan mysqli_real_escape_string, kod tersebut tetap terdedah kepada serangan suntikan SQL . Ini kerana ia menggunakan penggabungan rentetan untuk memasang pertanyaan SQL, yang membolehkan penyerang memanipulasi pertanyaan dengan menyuntik kod hasad melalui input borang.
Penyelesaian Disyorkan: Penyata Disediakan
Kaedah paling berkesan untuk mencegah suntikan SQL adalah melalui kenyataan yang disediakan. Mereka memisahkan parameter data daripada arahan pertanyaan, menghapuskan kemungkinan pencemaran. Berikut ialah contoh:
$stmt = $db_con->prepare("INSERT INTO `users` (`email`, `psw`) VALUES (?, ?)"); $stmt->bind_param("ss", $email, $psw); $stmt->execute();
Langkah Keselamatan Tambahan
Dalam kes di mana kenyataan yang disediakan tidak dapat dilaksanakan, pertimbangkan:
Dengan melaksanakan langkah-langkah ini, anda boleh meningkatkan keselamatan aplikasi anda dengan ketara terhadap suntikan SQL dan serangan SQL yang lain.
Atas ialah kandungan terperinci Adakah `mysqli_real_escape_string` Cukup untuk Mencegah Serangan Suntikan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!