Dalam proses pembangunan tapak web, serangan suntikan SQL ialah kelemahan keselamatan biasa Ia membenarkan penyerang mendapatkan data sensitif tapak web atau mengawal tapak web dengan menyuntik kod SQL secara berniat jahat. PHP ialah bahasa back-end yang biasa digunakan Berikut akan memperkenalkan cara mencegah serangan suntikan SQL dalam pembangunan bahasa PHP.
// 创建PDO对象 $pdo = new PDO("mysql:host=localhost;dbname=test", "root", "password"); // 创建预处理语句对象 $stmt = $pdo->prepare("SELECT * FROM users WHERE username = :username AND password = :password"); // 绑定参数 $username = $_POST['username']; $password = $_POST['password']; $stmt->bindParam(":username", $username); $stmt->bindParam(":password", $password); // 执行语句 $stmt->execute();
Dengan menggunakan ruang letak dan parameter mengikat, anda boleh mengelakkan isu keselamatan yang disebabkan oleh serangan suntikan SQL.
// 过滤输入的字符串 $username = filter_var($_POST['username'], FILTER_SANITIZE_STRING); // 转义输入的字符串 $username = mysqli_real_escape_string($connection, $_POST['username']);
Antaranya, fungsi FILTER_SANITIZE_STRING
akan menapis tag dan aksara khas dalam rentetan, manakala fungsi mysqli_real_escape_string
akan melarikan diri daripada aksara khas dalam data input.
// 验证邮箱地址 if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { echo "Email is not valid"; } // 验证手机号 if (!preg_match("/^[0-9]{11}$/", $_POST['phone'])) { echo "Phone number is not valid"; }
Apabila melakukan pengesahan data, pengesahan khusus harus dilakukan pada data input khusus untuk memastikan bahawa data adalah sah.
Ringkasnya, kaedah untuk menghalang serangan suntikan SQL dalam pembangunan bahasa PHP termasuk menggunakan pertanyaan berparameter, menapis dan melepaskan data input, mengesahkan data input dan meminimumkan kebenaran pangkalan data. Pembangun perlu mengukuhkan kesedaran keselamatan mereka dan mengambil langkah yang berkesan untuk memastikan keselamatan tapak web mereka.
Atas ialah kandungan terperinci Bagaimana untuk menghalang serangan suntikan SQL dalam pembangunan bahasa PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!