Apa itu SQL Injection – Apabila anda pernah belajar tentang dunia hacking, tentunya anda sudah tidak asing lagi dengan istilah SQL Injection. Teknik satu ini menjadi salah satu teknik yang digemari oleh para attacker, karena sampai saat ini masih banyak website yang kurang memperhatikan celah keamanan sistemnya yang bisa dimanfaatkan oleh pengguna yang tidak bertanggung jawab.
Apa itu SQL Injection?
SQL Injection adalah salah satu teknik yang menyalahgunakan celah keamanan yang ada di SQL pada bagian database sebuah aplikasi. Celah ini dapat terjadi karena input tidak di filter secara benar dan dalam pembuatannya menggunakan form yang salah.
SQL Injection dilakukan dengan cara mengeksploitasi dan memodifikasi perintah SQL (Structured Query Language) pada form aplikasi yang memungkinkan penyerang dapat mengirimkan sintaks ke database aplikasi.
Jika anda belum mengetahui apa itu database, Database adalah suatu kumpulan data yang terdapat pada suatu sistem, apapun program atau platform yang digunakan oleh sistem tersebut (Postgre SQL, MySQL, MariaDB, dsb). Kumpulan data tersebut merupakan database. Database inilah yang nantinya akan menyajikan informasi kepada pengguna.
Penyebab Terjadinya SQL Injection
Lalu apa penyebab terjadinya sql injection? SQL Injection pada awalnya dapat terjadi karena programmer atau pengembang aplikasi tidak menerapkan filter terhadap meta karakter seperti (&, ;, `, ‘, \, “, |, *, ?, ~, dst) yang digunakan dalam sintaks untuk query SQL. Pada akhirnya penyerang dapat menginputkan meta karakter tersebut menjadi instruksi pada aplikasi untuk mengakses database.
Contoh penggunaan dari teknik sql yang sering terjadi yaitu pada saat proses login. Jika sebuah website tidak menerapkan filter pada form input maka attacker dapat melancarkan serangan dengan cara memasukkan username dengan menambahkan ‘#’, misalnya ‘Ardian#’. Hal ini menyebabkan karakter selanjutnya tidak dianggap sebagai kode SQL, alhasil username ardian tidak perlu memasukkan password agar dapat masuk kedalam sistem. Masih banyak teknik SQL Injection yang dapat anda cari di internet.
Cara mencegah SQL Injection
SQL Injection dilakukan dengan mencar celah sistem keamanan aplikasi atau software. Selain itu SQL Injection sangat berbahaya jika tidak cepat ditangani karena berpengaruh terhadap data yang bisa dicuri atau bahkan dirusak. Oleh karena itu, perlu adanya pencegahan untuk mengatasi terjadinya SQL Injection. Berikut diantaranya.
1. Memberikan enkripsi dan mengunci pada database
Untuk mengamanan data dari para attacker, anda dapat menggunakan enkripsi untuk database anda agar aman. Anda dapat menyimpan data yang bersifat credential secara terpisah untuk menyulitkan penyerang dalam melakukan SQL Injection.
Selain itu, anda juga mengunci database sistem sehingga SQL Query tidak dapat diakses melalui halaman pengguna (website). Anda dapat memberikan batasan bahwa tidak semua pengguna dapat melakukan akses kedalam tabel tersebut. Yaitu dengan mengunci tabel yang sangat vital.
2. Batasan hak akses
Tujuan dari diberikannya batasan hak akses kepada pengguna yaitu untuk mencegah terjadinya SQL Injection. Jangan pernah anda login ke database menggunakan akses admin sebagai root. Tetapi, anda bisa menggunakan akses istimewa yang telah ditentukan untuk membatasi ruang lingkup sistem.
3. Memberikan validasi input pengguna
Anda dapat melakukan filter input pada form tampilan pengguna untuk mencegah terjadinya SQL Injection. Filter yang bisa anda terapkan seperti menyaring jenis, panjang, format input, dan sebagainya. Dengan demikian, hanya input yang lolos validasi yang dapat digunakan kedalam query database.
4. Menggunakan Parameterized Query
Parameterized Query adalah sebuah permintaan query yang memakai penanda, dimana penanda atau parameter ini akan diberikan nilai pada waktu query dijalankan atau dieksekusi. Cara ini merupakan cara sederhana yang dapat dilakukan untuk mencegah SQL Injection. Parameterized akan mendefinisikan seluruh kode SQL sebelum mengirimkannya ke lapisan query.
Setiap database harus mampu mengenali input yang dimasukkan oleh pengguna, dimana apakah termasuk kategori kode SQL atau data pengguna. Dengan demikian, para penyerang tidak dapat mengubah isi query. Meskipun telah memasukkan kode SQL saat melakukan input.
Tools yang digunakan untuk SQL Injection
Berikut ini adalah beberapa tools yang dapat anda gunakan untuk melakukan ujicoba keamanan aplikasi yang sedang anda kembangkan. Berikut tools yang sering digunakan oleh para attacker maupun developer.
- BSQL Hacker adalah sebuah tools yang dikembangkan oleh Portcullis lab, BSQL Hacker merupakan tools injeksi yang dirancang untuk mengeksplor hampir seluruh jenis database.
- Havij adalah SQL Injection otomatis alat yang otomatis membantu anda untuk mencari dan mengeksploitasi kelemahan SQL Injection pada halaman web.
Kesimpulan dan Penutup
Itulah penjelasan tentang SQL Injection yang dapat caraguna sampaikan. Setiap sistem yang kita kembangkan sebaiknya memiliki tingkat keamanan yang baik terutama dalam masalah SQL Injection. Teknik ini merupakan teknik dasar yang paling mudah digunakan oleh para attacker untuk menyerang sebuah website. Semakin rentan atau banyak celah suatu website, maka akan semakin berbahaya terhadap data yang tersimpan dalam database sistem tersebut. Jika ada yang ingin ditanyakan atau disampaikan, silahkan komen pada kolom komentar dibawah.
Comments 1