Pengertian SQL Injection - Salah satu tindakan cyber crime yang biasa dilakukan adalah melakukan injection menggunakan bahasa SQL dengan menyerang kolom kolom login yang belum difilter untuk script sql injection, cara ini sangat berbahaya karena mampu menghacurkan database dan mengetahui semua data login dari website yang ditargetkan.
Jika sobat seorang programer berbasis web maka mempelajari apa itu sql injection merupakan ilmu wajib yang harus dipelajri, karena tidak hanya inter dalam mendasain dan membangun situs web saja, tapi juga tentunya harus mampu mengamankan website tersebut.
Dibawah ini saya akan menulis artikel sederhana tentang pengenalan tentang Sql Injection dan mengenal model model script injection.
Pengertian SQL Injection
Dibawah ini coba dulu sobat baca pengertian secara lengkap tentang sql injection yang saya kutip dari wikipedia.
Injeksi SQL (Bahaasa Inggris: SQL Injection) adalah sebuah teknik yang menyalah gunakan sebuah celah keamanan yang terjadi dalam lapisan database sebuah aplikasi.
Celah ini terjadi ketika masukan pengguna tidak
disaring secara benar dari karakter-karakter SQL bentukan string yang
diimbuhkan dalam pernyataan SQL atau
masukan pengguna tidak bertipe kuat dan
karenanya dijalankan tidak sesuai harapan. Ini sebenarnya adalah sebuah contoh
dari sebuah kategori celah keamanan yang lebih umum yang dapat terjadi setiap
kali sebuah bahasa pemrograman atau skrip diimbuhkan di dalam bahasa yang lain.
Dan biasanya Sql Injection akan digunakan di halaman login website yang proses
pengecekan loginnya tidak aman atau tidak mempunyai saringan.
Karakter-Karakter Yang Tidak Disaring Secara Benar
Bentuk injeksi SQL ini terjadi ketika masukan
pengguna tidak disaring dari karakter-karakter dan kemudian diteruskan ke dalam sebuah
pernyataan SQL. Ini menimbulkan potensi untuk memanipulasi
pernyataan-pernyataan yang dilakukan pada basis data oleh pengguna akhir
aplikasi.
Baris kode berikut menggambarkan celah
keamanan ini:
pernyataan := "SELECT
* FROM pengguna WHERE nama = '" + namaPengguna + "';"
Jika variabel "namaPengguna"
dirangkai sedemikian rupa oleh pengguna yang bermaksud buruk, pernyataan SQL
tersebut bisa melakukan lebih daripada yang pengarangnya maksudkan. Sebagai
contoh, mengeset variabel "namaPengguna" sebagai
a' or 't'='t
pernyataan SQL keseluruhan
SELECT * FROM pengguna
WHERE nama = 'a' or 't'='t';
Jika kode ini akan digunakan dalam sebuah
prosedur untuk melakukan otentikasi, maka contoh ini dapat dipakai untuk
memaksakan pemilihan sebuah nama pengguna yang sah karena evaluasi
't'='t'
akan
selalu bernilai benar.
Secara teori, perintah SQL sah
apapun bisa diinjeksi melalui metode ini, termasuk menjalankan banyak
pernyataan. Nilai "namaPengguna" berikut ini pada pernyataan di atas
akan menyebabkan dihapusnya tabel "pengguna" dan juga pengambilan
semua data dari tabel "data":
a';DROP TABLE pengguna;
SELECT * FROM data WHERE nama LIKE '%
Masukan ini menjadikan pernyataan akhir SQL
sebagai berikut:
SELECT * FROM pengguna
WHERE nama = 'a';DROP TABLE pengguna; SELECT * FROM data WHERE nama LIKE '%';
ok
Penanganan Tipe Yang Tidak Benar
Bentuk injeksi SQL ini terjadi ketika sebuah
unsur masukan pengguna tidak bertipe kuat atau
tidak diperiksa batasan-batasan tipenya. Ini dapat
terjadi ketika sebuah unsur numerik akan digunakan dalam sebuah pernyataan SQL,
tetapi pemrogram tidak melakukan pemeriksaan untuk memastikan bahwa masukan
pengguna adalah numerik. Sebagai contoh:
pernyataan := "SELECT
* FROM data WHERE id = " + variabel_a + ";"
Terlihat jelas dari pernyataan ini pengarang
memaksudkan variabel_a menjadi sebuah nomor yang berhubungan dengan unsur
"id". Namun begitu, jika pada kenyataannya itu adalah sebuah string, maka pengguna akhir dapat memanipulasi pernyataan
tersebut sesukanya, dan karena itu mengabaikan kebutuhan akan karakter-karakter.
Sebagai contoh, mengeset variabel_a sebagai
1;DROP TABLE pengguna
akan menghapus tabel "pengguna"
dari basis data karena hasil akhir SQL-nya akan menjadi sebagai berikut:
SELECT * FROM data WHERE id
= 1;DROP TABLE pengguna;
Dan jika website
anda berhasil dlakuka SQL Injection, bisa dikatan website anda akan hancur dan
di acak acak oleh sang Injection. Maka dari itu setelah agan mengetahui apa itu
SQ Injection maka wajib sifatnya untuk mempelajari cara mencegah SQL Injection pada website.
Okeeeh sekian dulu
untuk hari ini, semoga apa yang saya tulis ini bermamfaat.
<strong></strong>
or<b></b>
.<em></em>
or<i></i>
.<u></u>
.<strike></strike>
.<code></code>
or<pre></pre>
or<pre><code></code></pre>
.And use parse tool below to easy get the style.
Show Parser Hide Parser