SQL Injection Dasar — Security

Apa itu SQL Injection? SQL Injection (SQLi) adalah serangan di mana penyerang menyisipkan kode SQL berbahaya melalui input pengguna. Ini adalah salah satu vulne

Apa itu SQL Injection?

SQL Injection (SQLi) adalah serangan di mana penyerang menyisipkan kode SQL berbahaya melalui input pengguna. Ini adalah salah satu vulnerability tertua dan masih paling umum ditemukan di aplikasi web.

Bagaimana SQL Injection Bekerja

Ketika aplikasi menyisipkan input pengguna langsung ke dalam query SQL tanpa sanitasi:

// Kode PHP yang vulnerable
$username = $_POST["username"];
$password = $_POST["password"];
$query = "SELECT * FROM users WHERE username = '$username' AND password = '$password'";
$result = mysqli_query($conn, $query);

// Jika penyerang memasukkan:
// username: admin' --
// password: apapun
// Query menjadi:
// SELECT * FROM users WHERE username = 'admin' --' AND password = 'apapun'
// Bagian setelah -- adalah komentar, jadi password check diabaikan!

Tipe-tipe SQL Injection

Contoh Serangan UNION-based

// URL asli
GET /products?id=1

// Serangan UNION
GET /products?id=1 UNION SELECT username, password FROM users --

// Query yang dieksekusi:
// SELECT name, price FROM products WHERE id = 1
// UNION SELECT username, password FROM users --

Dampak SQL Injection

Teknik OR 1=1

Salah satu teknik SQLi paling dasar adalah menyisipkan OR 1=1 ke klausa WHERE. Karena 1=1 selalu bernilai true, kondisi WHERE menjadi selalu terpenuhi untuk semua baris, sehingga query mengembalikan semua data dalam tabel — bukan hanya satu record yang seharusnya.

Kenali Tanda-tanda Vulnerability

Jika aplikasi menampilkan error SQL saat kamu menambahkan karakter ' di input, kemungkinan besar aplikasi tersebut vulnerable terhadap SQL Injection.

Yang akan kamu pelajari