Kamis, 30 Juni 2016

SQL Injection ? Ini Dia Pencegahannya

MTDC-Batam. Bagi yang berkecimpung dalam dunia keamanan komputer, tentunya tidak akan asing lagi mendengar istilah SQL Injection. Ada penggabungan dua kata, yaitu SQL itu sendiri sebagai sebuah bahasa yang digunakan untuk mengakses database. Lalu kata Injection yang apabila diterjemahkan berarti menyuntik.

Salah satu contoh serangan dari SQL Injection
Ya, istilah tersebut memang benar. Apa yang dilakukan oleh SQL Injection ini adalah menyuntik, lebih tepatnya menyusupkan perintah tertentu sehingga terbongkar kelemahannya (vulnerabilitas) untuk dapat dieksploitasi.

SQL Injection tidak lepas dari dunia hacking. Bahkan, teknik hacking dengan menggunakan SQL Injection ini boleh dibilang "Nggak ada matinya..". Sebab dari dulu sampai sekarang teknik tersebut masih tetap awet. Hal ini karena aksi SQL Injection tidak mensyaratkan banyak hal, tidak perlu melakukan ping, menggunakan port tertentu, tidak terpengaruh oleh firewall, tidak ngefek dengan IDS (Intrusion Detection System).

SQL Injection dapat terjadi karena tidak adanya penanganan terhadap karakter-karakter tanda petik satu dan juga karakter double minus yang menyebabkan suatu aplikasi dapat disisipi dengan perintah SQL. Sehingga seseorang bisa menyisipkan perintah SQL kedalam suatu parameter maupun suatu form.

Mari kita bahas pencegahan terhadap serangan SQL Injection :
1. Batasi panjang input box (jika memungkinkan), dengan cara membatasinya di kode program. Sehingga orang yang tidak berhak akan bingung sejenak melihat input box nya tidak bisa di inject dengan perintah yang panjang.
2. Administrator web haruslah tegas menolak user yang menginput karakter selain abjad dan angka. Karakter khusus dilarang masuk. Terapkan hal ini, baik pada input user, parameter URL, dan nilai-nilai dari cookies.
3. Untuk nilai numerik, konversilah menjadi integer, sebelum di parsing menjadi statement SQL. Atau gunakan ISNUMERIC untuk memastikan data tersebut integer.
4. Filter input yang dimasukan oleh user, terutama penggunaan tanda kutip tunggal (input validation), dan karakter khusus lainnya.
5. Jika memungkinkan, buatlah daftar karakter yang boleh digunakan (whitelist).
6. Batasi karakter yang boleh di input oleh pengunjung situs web anda.
7. Matikan atau sembunyikan pesan-pesan error yang keluar dari SQL Server yang berjalan.
8. Matikan fasilitas-fasilitas standar, seperti Stored Procedures, Extended Stored Procedures jika memungkinkan.
9. Ubah Startup and Run SQL Server menggunakan low privilege user.
10. Mengganti error message (pesan error) karena hal ini sering kali digunakan oleh orang yang tidak berhak untuk menelusuri informasi jalur penyimpanan database.
11. Batasi permisi hanya pada user yang terotorisasi saja. Sang user tentu saja harus yakin bahwa data yang dia terima sudah akurat dan tidak ceroboh memodifikasinya.
12. Kalau bisa, hilangkan show error mysql pada konfigurasi PHP.
13. Jangan percaya bahwa ada 100% sistem kita aman, selalu lakukan update secara berkala.
14. Bagi anda yang menggunakan CMS, sangat disarankan untuk sering-sering mengupdate CMS.
15. Sering-seringlah untuk memeriksa apakah terdapat bug pada situs web yang dikelola. Cara yang paling mudah adalah menggunakan tool SQL Injection, karena kita bisa menemukan sendiri kelemahan pada situs web. Sebelum ditemukan orang lain.

Alur terjadinya serangan SQL Injection
Dengan memahami SQL Injection, seseorang tidak hanya bisa mencari atau lebih tepatnya mencuri informasi penting dalam sebuah database. Tidak hanya sekedar username dan password saja, bahkan hal-hal krusial termasuk informasi database itu sendiri pun bisa diperoleh. Tidak hanya membaca data yang ada didalam database, Anda pun bisa menyusupkan file anda sendiri kedalam sebuah sistem. ( sumber : Buku SQL Injection).

0 komentar:

Posting Komentar