Pertanyaan Berparameter: Panduan untuk Menjaga Interaksi Pangkalan Data
Melindungi data pengguna dan mengekalkan keselamatan aplikasi adalah penting dalam pembangunan web. Satu risiko keselamatan yang biasa ialah suntikan SQL, di mana pelakon berniat jahat cuba mengeksploitasi input pengguna untuk memanipulasi pertanyaan pangkalan data. Pertanyaan berparameter menawarkan penyelesaian yang berkesan untuk mengurangkan ancaman ini.
Memahami Pertanyaan Berparameter
Pertanyaan berparameter ialah teknik yang memisahkan pernyataan pertanyaan daripada parameter inputnya. Ia melibatkan pra-penyusun pertanyaan sekali dan kemudian secara dinamik memasukkan nilai parameter semasa melaksanakannya. Ini memastikan bahawa sebarang input pengguna dianggap sebagai data dan bukannya kod, menghalang suntikan SQL.
Contoh Pertanyaan Berparameter dalam PHP dan MySQL
Mari kita pertimbangkan senario di mana anda ingin mengemas kini alamat e-mel pengguna dalam pangkalan data MySQL menggunakan PHP. Menggunakan pertanyaan berparameter, anda akan menulis sesuatu yang serupa dengan yang berikut:
<?php // Create a prepared statement $stmt = $mysqli->prepare("UPDATE users SET email = ? WHERE id = ?"); // Bind the parameter to the query $stmt->bind_param('ss', $email, $id); // Set the parameter values $email = 'new@example.com'; $id = 1; // Execute the query $stmt->execute(); // Close the prepared statement $stmt->close(); ?>
Dalam contoh ini:
Dengan menggunakan pertanyaan berparameter, anda melindungi pangkalan data anda daripada suntikan SQL yang berniat jahat dan memastikan integriti anda data.
Atas ialah kandungan terperinci Bagaimanakah Pertanyaan Berparameter Dapat Menghalang Suntikan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!