Definisi SQL Injection

SQL Injection merupakan salah satu jenis serangan dari banyak serangan lainnya yang dilakukan oleh orang tidak bertanggung jawab pada aplikasi berbasis web. SQL injection merupakan suatu perilaku memafaatkan dan menyalahgunakan sebuah celah keamanan atau biasa kita kenal dengan hacking yang dilakukan oleh pihak yang tidak bertanggung jawab yang dilakukan pada sebuah aplikasi web yang didalamnya terdapat database dengan cara mengganti atau merubah script SQL yang ada pada memori aplikasi berbasis web tersebut (Yudantoro, 2013).

Sebuah teknik peretasan yang sudah lebih dari 20 tahun lalu diungkapkan ke publik. Namun, hingga sekarang masih banyak sekali dijumpai. Artinya hingga saat ini, teknik SQL Injection masih menjadi teknik paling favorit para hacker untuk melakukan peretasan pada sebuah website.

Semakin pesatnya perkembangan teknologi, pastinya juga semakin meningkatkan kasus serangan yang mengarah ke website atau dunia internet lainnya. Bisa dibilang peretasan website yang menjadi peringkat pertama adalah SQL Injection. Celah keamanan ini dapat terjadi ketika masukan user yang tidak disaring dengan cara yang benar?benra tepat dari carakter pelulus bentuk string yang ditambahi dalam suatubperintah SQL atau bisa jadi karena masukan user tidak bertipe sangat kuat dan oleh karena itu pada saat dijalankan tidak sesuai keinginan. Hal ini sebenarnya merupakan salah satu sampel dari banyaknya jenis?jenis celah keamanan yang lebih umum yang dapat terjadi pada setiap kali suatu bahasa pemrograman atau script ditambahkan di dalam bahasa yang lainnya. SQL injection merupakan penyalahgunaan yang target utamanya adalah informasi database yang ada pada aplikasi berbasis web dengan cara memasukkan perintah SQL atau query tanpa adanya validasi atau bisa diebut ilegal.

SQL Injection memungkinkan seseorang yang tidak bertanggung jawab dapat masuk kedalam sebuah aplikasi web tanpa harus memiliki sebuah account. SQL injection juga bisa untuk merubah, menghapus, ataupun menambahkan data ke dalam database. Dan yang lebih fatal lagi adalah apabila hacker mematikan database itu, yang dapat berakibat aplikasi web tersebut tidak bisa memberi layanan kepada web server. Aplikasi web dapat dilindungi dari serangan injeksi SQL dengan mempertimbangkan dua hal utama yaitu mekanisme untuk mendeteksi serangan injeksi SQL, dan kedua yaitu pengetahuan tentang kerentanan injeksi SQL dalam aplikasi web. Di sini kita akan melihat solusi paling menonjol dan cara kerjanya secara singkat dan tahu tentang ide?ide inti dibaliknya. Salah satu cara melindungi dari serangan sql injection yaitu dengan pendekatan pengujian keamanan database. Pendekatan ini memiliki 3 cara yaitu deteksi titik input potensial injeksi SQL,pembuatan kasus uji secara otomatis, menjalankan uji kasus untuk melakukan serangan pada aplikasi untuk menemukan kerentanan basis data. Mekanisme di atas terbukti efisien karena mampu mendeteksi titik input SQL Injection dengan tepat dan tepat waktu sesuai harapan. Pendekatan SQL?IDS Pendekatan ini menggunakan metode berbasis spesifikasi baru untuk mendeteksi eksploitasi kerentanan injeksi SQL. Metode yang diusulkan di sini melakukan deteksi spesifik query yang memungkinkan sistem untuk melakukan analisis terstruktur di hampir tidak ada overhead komputasi. Ini adalah pendekatan yang sangat baru dan dalam penerapannya sangat efisien. Namun, diperlukan untuk melakukan lebih banyak eksperimen dan melakukan perbandingan dengan metode deteksi lain dibawah lingkungan yang fleksibel dan berbagi (Baranwal,2012).

 

Cara Kerja SQL Injection

Adapun cara kerja SQL Injection adalah sederhana namun efektif dalam meretas sebuah situs. Seperti yang sudah disinggung di atas kalau para hacker bisa memasukan berbagai jenis karakter kontrol SQL serta kata kunci perintah.

 

Contohnya tanda kutip (‘), komentar (- -), sama (=), tanda kutip ganda (“) dan lain sebagainya. Untuk bisa merubah struktur query, memakai karakter kontrol itu dengan perintah SQL umum seperti Delete, From, Select dan lain sebagainya. Sehingga memungkinkan hacker mengakses atau mengambil elemen data dari sebuah server database backend.

 

Serangan yang berhasil, biasanya memerlukan aplikasi web untuk menyematkan kode berbahaya dari penyerangan dalam pernyataan SQL.

 

Biasanya kode berbahaya ini berasal dari sumber yang tidak terpercaya. Untuk beberapa kasus, database sistem internal juga bisa menjadi sumber daya yang berbahaya.

 

Penyerang bisa mengakses atau merubah database. Namun hal ini tergantung dari bagaimana hacker membuat data yang berbahaya.

 

Cara Mencegah SQL Injection

Untuk mengurangi atau mencegah SQL Injection ada beberapa tindakan yang bisa Anda gunakan. Penasaran apa saja tindakannya? Berikut pembahasan selengkapnya:

1.    Sesuaikan input box

Apabila form input box tujuannya untuk mengetikan nama, silahkan Anda berikan karakter khusus. Kalau untuk menempatkan nomor telepon maka sebaiknya diisi dengan menggunakan numbering saja. Sehingga tindakan penyerangan SQL Injection dapat dihindarkan.

 

2.    Batasi Input Box

Kalau mau lebih amannya dalam setiap box haru dibatasi jumlah karakternya. Misalnya untuk nama minimal diberikan 30 karakter atau dapat di sesuaikan dengan keperluan

Sehingga kalau ada percobaan SQL Injection yang masuk akan terkendala oleh jumlah karakter yang telah tersediakan oleh Anda.

 

3.    Filter User

Cara mencegah terjadi serangan SQL Injection adalah dengan melakukan filter terhadap setiap inputan user. Terutama yang memakai karakter kutip tunggal atau Validation Input.

Pasalnya ini akan menjadi salah satu trik yang digunakan para hacker supaya bisa melakukan serangan SQL Injection.

 

4.    Mematikan Error Handling

Apabila terjadi error maka Anda perlu menonaktifkan fitur notifikasi pesan error yang keluar dari SQL server.

Pasalnya kalau sampai ada, ini akan dapat menjadi celah para hacker untuk melakukan eksploitasi lebih dalam untuk percobaan SQL Injection.

 

5.    Enkripsi Database

Anda bisa menyimpan data yang sifatnya credential secara terpisah. Sehingga mampu memberikan kesulitan penyerangan dalam melakukan SQL Injection. Bahkan Anda bisa melakukan enkripsi supaya data tersebut jauh lebih aman.

 

6.    Mengunci Database

SQL Injection adalah teknik peretasan untuk media website. Nah untuk mencegahnya hal ini adalah bisa melakukan kunci database.

Ada baiknya SQL query tidak bisa di akses lewat website atau halaman pengguna. Anda bisa memberikan batasan kalau tidak semua orang bisa melakukan akses ke sebuah tabel tertentu yakni dengan mengunci tabel yang sangat penting atau vital.

 

7.    Sembunyikan Pesan Error

Biasanya ada sebuah pesan error yang tampil dari database pada saat pengguna melakukan inputan yang salah. Untuk menghindarkan terjadinya SQL Injection adalah Anda akan diminta untuk menyembunyikan atau menonaktifkan pesan error supaya pengguna tidak terus mengeksploitasi arsitektur database yang dipakai.

Karena bisa saja pengguna tersebut adalah penyerang sistem Anda. Apabila mau menampilkan pesan, sebaiknya tampilkan pesan yang menyatakan kalau sebaliknya pengguna menghubungi dukungan teknis untuk mengatasi masalah tersebut.

 

8.    Setting Privilege

Anda bisa merubah pada bagian Startup and run SQL Server dengan mengatur low privilege user di menu SQL Server Security tab.

 Copyright stekom.ac.id 2018 All Right Reserved