Keamanan Database PHP: Mencegah Serangan SQL Injection
Dipublikasikan: 14 Juli 2021
Saat Anda membangun modul dinamis dengan PHP (misalnya sistem pengelolaan jadwal, manajemen aset, atau absensi), ancaman terbesar bagi data perusahaan Anda adalah SQL Injection.
Tinggalkan Eksekusi Query Langsung
Menggabungkan input pengguna langsung ke dalam string query SQL adalah kesalahan fatal yang sering dilakukan *developer* pemula. Peretas dapat menyisipkan kode berbahaya pada form login atau pencarian untuk menghapus seluruh tabel database Anda.
// Solusi Terbaik: Gunakan PDO Prepared Statements
$stmt = $pdo->prepare('SELECT * FROM users WHERE username = :user');
$stmt->execute(['user' => $input_username]);
$user = $stmt->fetch();
$stmt = $pdo->prepare('SELECT * FROM users WHERE username = :user');
$stmt->execute(['user' => $input_username]);
$user = $stmt->fetch();
Metode Prepared Statements memastikan database memperlakukan input semata-mata sebagai data teks, bukan sebagai perintah yang harus dieksekusi.