Penguji SQL Injection
Alat edukasi untuk memahami serangan SQL injection dan belajar cara mencegahnya dengan query berparameter
Semua pemrosesan terjadi di browser Anda. Tidak ada data yang diunggah.
Penguji SQL Injection
Alat edukasi untuk memahami serangan SQL injection dan belajar cara mencegahnya dengan query berparameter
🔒Semua pemrosesan terjadi di browser Anda. Tidak ada data yang diunggah.
Template Query
SELECT (Login)
Input Pengguna (Simulasi)
Payload SQL Injection Umum
Query Rentan (Penggabungan String)
TIDAK AMAN - Jangan gunakan di produksi
SELECT * FROM users WHERE username = 'user_input_here' AND password = 'pass123'
Alternatif Query Berparameter yang Aman
Node.js (mysql2)
const [rows] = await connection.execute( 'SELECT * FROM users WHERE username = ? AND password = ?', [username, password] );
Python (psycopg2)
cursor.execute(
"SELECT * FROM users WHERE username = %s AND password = %s",
(username, password)
)Java (PreparedStatement)
PreparedStatement ps = conn.prepareStatement(
"SELECT * FROM users WHERE username = ? AND password = ?"
);
ps.setString(1, username);
ps.setString(2, password);
ResultSet rs = ps.executeQuery();C# (SqlParameter)
using var cmd = new SqlCommand(
"SELECT * FROM users WHERE username = @user AND password = @pass",
connection
);
cmd.Parameters.AddWithValue("@user", username);
cmd.Parameters.AddWithValue("@pass", password);PHP (PDO)
$stmt = $pdo->prepare(
'SELECT * FROM users WHERE username = :user AND password = :pass'
);
$stmt->execute(['user' => $username, 'pass' => $password]);Praktik Terbaik Pencegahan SQL Injection
1
Selalu gunakan query berparameter (prepared statements) alih-alih penggabungan string untuk SQL.2
Gunakan ORM (Sequelize, SQLAlchemy, Entity Framework) yang menghasilkan query berparameter secara otomatis.3
Terapkan prinsip hak akses minimal: akun database hanya boleh memiliki izin yang diperlukan.4
Gunakan daftar putih untuk identifier dinamis seperti nama kolom dan nama tabel yang tidak dapat diparameterkan.5
Terapkan validasi input sebagai langkah pertahanan berlapis, tetapi jangan pernah mengandalkannya sebagai satu-satunya perlindungan.6
Aktifkan aturan WAF (Web Application Firewall) dan pantau log untuk pola percobaan SQL injection.