Bagaimana untuk melindungi pangkalan data tapak web PHP daripada serangan suntikan SQL?
Ikhtisar:
Apabila membangunkan dan menyelenggara tapak web PHP, adalah penting untuk melindungi pangkalan data anda daripada serangan suntikan SQL. Serangan suntikan SQL ialah ancaman keselamatan siber biasa yang membenarkan penyerang untuk menipu pangkalan data dengan input berniat jahat, yang membawa kepada kebocoran data, rasuah atau kehilangan. Artikel ini akan merangkumi beberapa langkah berjaga-jaga biasa dan amalan terbaik untuk melindungi pangkalan data tapak web PHP anda daripada serangan suntikan SQL.
$pdo = new PDO("mysql:host=localhost;dbname=mydb", "username", "password"); $username = $_POST['username']; $password = $_POST['password']; $stmt = $pdo->prepare('SELECT * FROM users WHERE username = :username AND password = :password'); $stmt->bindParam(':username', $username); $stmt->bindParam(':password', $password); $stmt->execute(); $result = $stmt->fetch();
filter_var()
、filter_input()
dsb. Berikut ialah contoh penggunaan fungsi penapis untuk menapis input pengguna: $username = $_POST['username']; $password = $_POST['password']; $filteredUsername = filter_var($username, FILTER_SANITIZE_STRING); $filteredPassword = filter_var($password, FILTER_SANITIZE_STRING); // 继续处理过滤后的输入,如参数化查询、密码哈希等
$userInput = $_POST['input']; // 不推荐的做法 $query = "SELECT * FROM users WHERE username = '" . $userInput . "'"; $result = $pdo->query($query); // 推荐的做法 $stmt = $pdo->prepare('SELECT * FROM users WHERE username = :username'); $stmt->bindParam(':username', $userInput); $stmt->execute(); $result = $stmt->fetch();
Ringkasan:
Melindungi pangkalan data tapak web PHP daripada serangan suntikan SQL adalah tugas yang penting. Artikel ini mencadangkan beberapa langkah berjaga-jaga biasa dan amalan terbaik, termasuk menggunakan pertanyaan berparameter dan pernyataan yang disediakan, pengesahan dan penapisan input, mengehadkan kebenaran akaun pangkalan data dengan ketat, mengelakkan penyambungan terus pertanyaan SQL, mengemas kini dan menyelenggara perisian pangkalan data secara kerap, dan menggunakan Firewall dan pemalam keselamatan. , dsb. Dengan mengambil langkah-langkah ini, anda boleh melindungi pangkalan data tapak web PHP anda dengan berkesan daripada ancaman serangan suntikan SQL.
Atas ialah kandungan terperinci Bagaimana untuk melindungi pangkalan data tapak web PHP daripada serangan suntikan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!