Pencegahan Suntikan SQL dengan PHP MySQLI
Untuk mengelakkan suntikan SQL apabila menggunakan PHP MySQLI, adalah penting untuk memastikan semua pembolehubah yang terlibat dalam SQL anda kenyataan. Ini termasuk kedua-dua pertanyaan baca dan tulis.
Bila Menggunakan mysqli_real_escape_string()
Walaupun mysqli_real_escape_string() ialah alat yang berguna, ia tidak mencukupi untuk melindungi daripada suntikan SQL. Ia hanya boleh digunakan sebagai langkah sementara sehingga anda melaksanakan parameterisasi yang betul.
Penparameteran Betul
Kaedah yang paling berkesan untuk mencegah suntikan SQL ialah menggunakan pertanyaan berparameter. Ini melibatkan mencipta pernyataan yang disediakan yang merangkumi ruang letak untuk nilai parameter. Nilai ini kemudiannya terikat pada ruang letak sebelum melaksanakan pertanyaan.
Contohnya:
$stmt = $mysqli->prepare("SELECT col1 FROM t1 WHERE col2 = ?"); $stmt->bind_param("s", $col2_arg); $stmt->execute();
Kepentingan Pertanyaan Berparameter
Pertanyaan berparameter menghalang suntikan kerana mereka memisahkan pernyataan SQL daripada hujah. Ini menghalang hujah berniat jahat daripada ditafsirkan sebagai sebahagian daripada pertanyaan.
Langkah Keselamatan Tambahan
Selain parameterisasi yang betul, pertimbangkan untuk melaksanakan langkah keselamatan berikut:
Atas ialah kandungan terperinci Bagaimana untuk Mencegah Suntikan SQL dengan berkesan dengan PHP MySQLi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!