Senin, 16 April 2012

SQL Injection


SQL Injection adalah salah satu teknik atau cara yang mengexploitasi celah keamanan yang muncul disekitar lapisan basis data dan aplikasinya. Celah keamanan tersebut ditunjukkan pada saat user memasukkan nilai string dan karakter-karakter control lainnya yang ada dalam intruksi SQL yang tidak di-filter secara benar atau user memasukkan string dengan tipe data tidak sama yang seharusnya tidak diproses. Faktor inilah yang merupakan kelompok umum dari celah keamanan yang bisa mencuat muncul pada salah satu bahasa pemrograman atau script pemrograman yang didalamnya terintegrasi basis data SQL satu sama lainnya.

Cara Kerja
  • Penyerangan (Attack) dilakukan pada lapisan basis data dan aplikasinya. 
  • Penyerangan (Attack) dilakukan berbentuk penyisipan instruksi-instruksi SQL yang berupa karakter-karakter khusus atau karakter-karakter logika dalam bentuk password.

Celah Keamanan SQL Injection

  1. Incorrectly filtered escape characters (Karakter-karakter Kontrol Tidak Disaring secara Benar)
    • Bentuk injeksi ini muncul pada saat user memasukkan karakter-karakter string yang tidak difilter dan dapat dilewatkan dalam pernyataan SQL
  2. Incorrect type handling (Bentuk Penanganan yang Tidak Benar)
    • Bentuk ini akan muncul pada saat user memasukkan karakter string dengan tipe data yang tidak sama atau tipe data string tersebut tidak periksa batasannya oleh programmer
  3. Vulnerabilities inside the database server (Celah Keamanan berada didalam Server Basis Datanya)
    • Biasanya celah keamanan bisa terjadi dalam software server database itu sendiri.
  4. Blind SQL Injection (Penyamaran SQL Injection)
    • Injeksi ini biasanya dilakukan terhadap aplikasi web, yang hasil attack-nya tidak ditampilkan secara langsung namun disamarkan dalam bentuk halaman lain

Cara pencegahan SQL INJECTION

  1. Batasi panjang input box (jika memungkinkan), dengan cara membatasinya di kode program, jadi si cracker pemula akan bingung sejenak melihat input box nya gak bisa diinject dengan perintah yang panjang.
  2. Filter input yang dimasukkan oleh user, terutama penggunaan tanda kutip tunggal (Input Validation).
  3. Matikan atau sembunyikan pesan-pesan error yang keluar dari SQL Server yang berjalan.
  4. Matikan fasilitas-fasilitas standar seperti Stored Procedures, Extended Stored Procedures jika memungkinkan.
  5. Ubah "Startup and run SQL Server" menggunakan low privilege user di SQL Server Security tab.
  6. Dan Yang paling penting... selalu melakukan validasi pada user input, jangan pernah mempercayai input dari user .....

Pentingnya Komputer dalam pembelajaran AUD

Perkembangan Komputer dan Teknologi Informasi merambah kesegala aspek kehidupan manusia. Setiap Aspek kehidupan, semuanya tidak akan terlepa...