Memahami Suntikan SQL dalam ADOdb dan Keselamatan Laman Web Umum
Suntikan SQL berlaku apabila input pengguna dikodkan secara tidak betul, berpotensi menjejaskan keselamatan tapak web. Walaupun biasanya dikaitkan dengan kaedah POST dan GET, serangan sedemikian boleh berlaku dalam pelbagai senario.
Contoh Suntikan SQL
Pertimbangkan kod yang disediakan dengan kaedah POST:
$name = trim($_POST['username']); $mail = trim($_POST['email']); $password = trim($_POST['password ']); if ($errors == "false") { $sql = "INSERT INTO clients SET name='" . mysql_real_escape_string($name) . "', mail='" . mysql_real_escape_string($mail) . "', password='" . mysql_real_escape_string(sha1($password)) . "'"; $connection->execute($sql); }
Kod ini menggunakan mysql_real_escape_string untuk melepaskan input pengguna, menghalang SQL suntikan.
Sekarang pertimbangkan kod dengan kaedah GET:
$sql = "SELECT videoID FROM likes WHERE videoID = '" .mysql_real_escape_string($videoID). "' AND UID = '" .mysql_real_escape_string($userID). "' LIMIT 1"; $connection->execute($sql);
Sekali lagi, mysql_real_escape_string digunakan untuk pengekodan, memastikan keselamatan kod ini.
Dalam kedua-dua kes, penggunaan mysql_real_escape_string menghalang serangan dengan melepaskan input pengguna dengan betul. Walau bagaimanapun, adalah penting untuk sentiasa menganggap sebarang input tidak tetap sebagai input pengguna untuk mengurangkan potensi kelemahan.
Mengurangkan Suntikan SQL
Untuk meningkatkan keselamatan dan mencegah suntikan SQL, ia adalah disyorkan untuk menggunakan PDO dengan pernyataan yang disediakan. Pendekatan moden ini memastikan bahawa input pengguna dikodkan dengan betul, menghapuskan kemungkinan pelanggaran keselamatan.
Atas ialah kandungan terperinci Bagaimanakah Penyata Disediakan Dengan PDO Boleh Meningkatkan Keselamatan Laman Web dan Mencegah Suntikan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!