SQL Injection - Rian010/Journal GitHub Wiki
SQL Injection
SQL Injection adalah teknik penyerangan yang mengambil untung dari kekurangan dalam input validasi pada aplikasi web. Ini memungkinkan serangan untuk mengambil data dari basis data atau mengubah data yang ada dalam basis data. SQL Injection dapat digunakan untuk mendapatkan akses ke data yang sensitif, seperti informasi pengguna atau data bisnis.
Bagaimana SQL Injection Bekerja?
SQL Injection bekerja dengan mengirim input yang tidak valid ke formulir atau input field pada aplikasi web. Input tersebut kemudian diproses oleh sistem sebagai perintah SQL, yang dapat membuka ruang untuk serangan. Misalnya, jika sebuah aplikasi web membutuhkan input untuk login, attacker dapat mengirim input berupa kode SQL yang akan dieksekusi oleh sistem.
Contoh SQL Injection
Contoh SQL Injection yang mudah untuk dipahami adalah:
Input validasi pada formulir login: Username : admin Password : ' OR 1 = 1
Kode SQL yang dihasilkan oleh serangan ini adalah: SELECT * FROM Users WHERE Username='admin' AND Password='' OR 1 = 1
Kondisi OR 1 = 1 akan selalu true, sehingga attacker dapat mengambil kontrol over aplikasi web.
Cara Mencegah SQL Injection
Ada beberapa cara yang dapat digunakan untuk mencegah SQL Injection, antara lain:
- Sanitize Input – Periksa apakah input yang diterima sesuai dengan format yang diharapkan. Gunakan fungsi built-in atau library khusus untuk sanitize input.
- Parameterized Query – Gunakan parameterized query atau prepared statement untuk memisahkan input dari kueri SQL.
- Validasi Input – Pastikan input yang diterima sesuai dengan format yang diharapkan. Misalnya, pastikan panjang karakter dan tipe data sesuai.
- Update Sistem Operasi dan Bahan Bakar Aplikasi – Perbarui sistem operasi dan bahan bakar aplikasi terbaru untuk mendapatkan patch terbaru terkait keamanan.
- Implementasi Firewall Database – Atur firewall database supaya hanya menerima koneksi dari alamat IP yang diperbolehkan.
Demikian SQL Injection dan cara mencegahnya. Selamat mencoba!