Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mencegah Suntikan SQL dengan berkesan dengan PHP MySQLi?

Bagaimana untuk Mencegah Suntikan SQL dengan berkesan dengan PHP MySQLi?

Patricia Arquette
Patricia Arquetteasal
2024-11-18 00:53:02767semak imbas

How to Effectively Prevent SQL Injection with PHP MySQLi?

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:

  • Escape Watak Istimewa: Jika menggunakan pertanyaan dinamik, elakkan sebarang input yang disediakan pengguna yang termasuk aksara khas (', ", <, >).
  • Pengesahan Input: Sahkan input pengguna untuk memastikan ia memenuhi format dan nilai yang diharapkan.
  • Hadkan Keistimewaan Pengguna: Berikan pengguna pangkalan data hanya kebenaran minimum yang diperlukan untuk tugas mereka.
  • Gunakan Penyulitan SSL: Sulitkan sambungan pangkalan data untuk mengelakkan mencuri dengar dan serangan orang di tengah.
  • Kemas Kini Keselamatan Biasa: Simpan PHP dan Versi MySQL terkini untuk menangani sebarang kelemahan yang baru ditemui.

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!

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