Apa itu SQL Injection Bagaimana Mencegahnya ?

SQL Injection (SQLi) merupakan tipe serangan injeksi yang memungkinkan orang tidak bertanggung jawab untuk menjalankan pernyataan SQL (Structured Query Language) berbahaya. Pernyataan/Query ini dapat mengontrol server database yang berada dibelakang aplikasi web. Penyerang dapat mempergunakan kerentanan (vulnerabilities) SQL Injection untuk dapat memotong langkah-langkah keamanan pada aplikasi. Mereka dapat menghindari autentikasi dan otorisasi halaman web atau aplikasi web dan mengambil, melihat keseluruhan database SQL. Penyerang juga dapat menggunaakn SQL Injection untuk menambah, melakukan modifikasi, dan menghapus entry didalam database.

Kerentanan (vulnerabilities) SQL Injection dapat mempengaruhi keseluruhan situs web atau aplikasi web apapun yang menggunakan backend database SQL (Structured Query Language) seperti MySQL, Oracle, MariaDB, SQL Server atau yang lainnya. Penyerang dapat mempergunakannya untuk mendapat akses tidak sah kedalam data sensitif organisasi, perusahaan, pemerintahan dan yang lainnya seperti :

    • Informasi Pelanggan
    • Data Pribadi
    • Rahasia Dagang
    • Kekayaan Intelektual
    • dan banyak lagi.

Serangan menggunakan SQL Injection merupakan salah satu kerentanan tertua yang dimiliki oleh aplikasi web, paling umum diketemukan dan paling berbahaya. Organisasi internasional OWASP (Open Web Application Security Project) membuat rangking dan SQL Injection menempati posisi nomor satu kerentanan terhadap aplikasi web.

Bagaimana SQL Injection Dilakukan ?

SQL Injection Attack

Agar dapat melakukan serangan SQL Injection, setiap penyerang harus terlebih dahulu input pengguna seperti login, keterangan buku pada perpustakaan yang memiliki kerentanan pada halaman web atau aplikasi berbasis web. Halaman sebuah web atau aplikasi berbasis web yang memiliki celah keamanan SQL Inject dapat menggunakan input pengguna tersebut untuk melakukan permintaan SQL. Penyerang dapat memberikan konten input, konten tersebut sering disebut juga dengan muatan berbahaya dan merupakan bagian penting dari serangan. Sesaat setelah penyerang mengirimkan konten ini, perintah SQL berbahaya akan dijalakan pada database.

SQL merupakan bahasa query yang dirancang spesifik untuk mengelola data yang dapat disimpan dalam database relasional. Pengguna dapat menggunakannya untuk melakukan akses, memodifikasi serta menghapus data. Sangat banyak aplikasi web dan situs web menyimpan keseluruhan data dalam database SQL. Pada beberapa kasus, menjalankan perintah pada sistem operasi juga dimungkinkan dengan menggunakan SQL Injection. Karena itu, serangan yang berhasil dengan menggunakan SQL Injection memiliki risiko yang sangat besar dan serius.

Cara Mencegah SQL Injection Bagaimana ?

Salah satu cara yang dapat dilakukan untuk mencegah adanya serangan SQL Injection terhadap aplikasi web dan situs web adalah melakukan validasi input serta membatasi parameter permintaan termasuk pernyataan yang disisipkan. Kode yang berada pada aplikasi harus dipastikan tidak boleh secara langsung menggunakan input. Pengembang website atau aplikasi web harus menyisir dan membersihkan seluruh input, tidak hanya input login, namun juga yang lainnya. Pengembang harus memastikan juga untuk menghapus elemen kode berbahaya yang memiliki potensi seperti tanda kutip tunggal (‘). Langkah lain yang perlu diambil adalah, mematikan visibilitas atau menampilkan setiap kesalahan query pada server produksi. Terlihatnya database error dapat dipergunakan penyerang untuk melakukan SQL Injection guna memperoleh informasi mengenai database.

Semoga artikel mengenai SQL Injection ini bermanfaat dan berguna bagi siapapun yang mebaca artikel ini, jika ingin mengetahui lebih jauh mengenai SQL Injection dan bagaimana penyerangan tersebut dilakukan guna mendapatkan pengetahuan untuk mencegahnya, silakan mengikuti salah satu kelas kami OFFENSIVE CYBER SECURITY I.