4.1 Pentingnya Keamanan sebuah Password Ada beberapa yang menyebabkan terjadinya SQL Injection, yaitu : Tidak adanya penanganan terhadap karakter karakter tanda petik satu dan juga karakter double minus -- yang menyebabkan suatu aplikasi dapat disisipi dengan perintah SQL. Penggunaan pesan error yang masih bersifat default -- mudah untuk melacak query yang digunakan.
4.2 Bahaya SQL Injection Ada beberapa bahaya yang ditimbulkan oleh SQL Injection, yaitu : Memungkinkan seseorang dapat login ke dalam sistem tanpa harus memiliki account. Memungkinkan seseorang mengubah, menghapus, maupun menambahkan data data yang berada di dalam database. Dapat mematikan database dari suatu aplikasi, sehingga tidak bisa memberi layanan kepada web server. 4.3 Penyebab Terjadinya SQL Injection Penyebab terjadinya SQL Injection, yaitu : Tidak adanya penanganan terhadap karakter karakter tanda petik satu dan juga karakter double minus -- yang menyebabkan suatu aplikasi dapat disisipi dengan perintah SQL. Sehingga seorang Hacker menyisipkan perintah SQL kedalam suatu parameter maupun suatu form. 4.4 Penanganan SQL Injection Ada beberapa cara untuk menangani SQL Injection, yaitu : 1. Menggunakan sintaks string OR = Contoh : $SQL = select * from login where username =$username and password = $password ; , (dari GET atau POST variable ) Jika dimasukkan OR =,maka eksekusi SQL-nya menjadi : select * from login where username =
$username and password=pass or =; , ( dengan SQL ini hasil selection akan selalu TRUE true sehingga user dapat login ke dalam suatu sistem ) 2. Menggunakan sintaks string pada username Contoh : SELECT * FROM members WHERE username = saya' AND password = ayas ; Berubah menjadi : SELECT * FROM members WHERE username = saya AND password = xxxx ; password tidak akan dieksekusi karena dianggap sebagai komentar $SQL = select * from login where username =$username and password = $password; , {dari GET atau POST variable } Isikan password dengan string or = Hasilnya maka SQL akan seperti ini = select * from login where username = $username and password=pass or =; , { dengan SQL ini hasil selection akan selalu TRUE } Maka kita bisa inject sintax SQL (dalam hal ini OR) kedalam SQL
(Input Validation). Mematikan atau menyembunyikan pesanpesan error yang keluar dari SQL Server yang berjalan. Mematikan fasilitas-fasilitas standar seperti Stored Procedures, Extended Stored Procedures jika memungkinkan. Mengubah "Startup and run SQL Server" menggunakan low privilege user di SQL Server Security tab. 5. KESIMPULAN
3.
4.
SQL Injection terjadi karena kesalahan dari programmer yang tidak mengetahui cara membuat website yang aman. Agar terhindar dari SQL Injection programmer harus memperhatikan logika atau codingan dalam aplikasi yang dibuat, buatlah variasi-variasi codingan yaitu dengan menggunakan beberapa batasan-batasan pada codingan, seperti batasi panjang input box (jika memungkinkan), dengan cara membatasinya di kode program, sehingga itu nantinya tidak dapat memungkinkan seseorang akan sedikit kesulitan dalam menembus dan berniat tidak baik terhadap website atau aplikasi yang telah dibuat. DAFTAR REFERENSI
4.5 Cara Pencegahan SQL Inejction Untuk mencegah terjadinya SQL Injection adapun beberapa pencegahan yang dapat dilakukan, yaitu : Membatasi panjang input box (jika memungkinkan), dengan cara membatasinya di kode program, jadi si cracker pemula akan bingung sejenak melihat input box nya tidak bisa diinject dengan perintah yang panjang. Memfilter input yang dimasukkan oleh user, terutama penggunaan tanda kutip tunggal
1.