Bolehkah mysql_real_escape_string Membersihkan Input Pengguna dengan Selamat?
Membimbangkan tentang suntikan SQL, pembangun sering menggunakan mysql_real_escape_string untuk membersihkan input pengguna. Walau bagaimanapun, keberkesanannya menimbulkan persoalan tentang kebolehpercayaannya sebagai satu-satunya ukuran.
Keterbatasan mysql_real_escape_string
Walaupun mysql_real_escape_string adalah utiliti yang berguna, ia mempunyai had:>
Pendekatan Lebih Teguh: Disediakan Penyata
Untuk meningkatkan keselamatan, pembangun mengesyorkan menggunakan pernyataan yang disediakan. Pendekatan ini memanfaatkan ruang letak untuk memisahkan data pengguna daripada pertanyaan SQL, menjadikannya tahan terhadap gangguan input. Berikut ialah contoh:$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (?, ?)"); $stmt->bindParam(1, $name); $stmt->bindParam(2, $value);
Perlindungan Tambahan
Selain daripada kenyataan yang disediakan, pertimbangkan untuk menggunakan:Kesimpulan
Untuk keselamatan optimum, mysql_real_escape_string sahaja tidak memadai. Sebaliknya, masukkan pernyataan yang disediakan sebagai perlindungan utama terhadap suntikan SQL. Selain itu, pertimbangkan untuk menggunakan HTMLPurifier dan pengesahan input yang ketat untuk pendekatan menyeluruh terhadap pembersihan input pengguna.Atas ialah kandungan terperinci Adakah mysql_real_escape_string Menawarkan Perlindungan Mencukupi Terhadap Suntikan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!