Rabu, 10 Agustus 2016

Apa Itu SQL Injeksi

PENJELASAN SQL INJECTION

SQL Injection adalah teknik hacking untuk memanipulasi query ( perintah database). injeksi sering di lakukan melalui inputan inputan yang tidak di lakukan pengecekan kebenaran data yang di input. SQL injection adalah kode injeksi teknik yang mengeksploitasi kerentanan keamanan yang terjadi di lapisan database dari aplikasi. Celah ini terjadi ketika masukan pengguna tidak disaring secara benar karakter string literal tertanam melarikan diri dalam pernyataan SQL atau masukan pengguna tidak bertipe kuat dan karenanya dijalankan. Ini adalah sebuah instance dari kelas yang lebih umum kerentanan yang dapat terjadi kapan pun salah satu bahasa pemrograman atau scripting tertanam dalam lainnya. Serangan injeksi SQL juga dikenal sebagai serangan penyisipan SQL.Dengan kata sederhana saya harus mengatakan hacker yang menyuntikkan karakter tertentu di daerah otentikasi admin dan akses keuntungan sebagai admin.

BENTUK CELAH KEAMANAN INJEKSI

♥KARAKTER YANG TIDAK DISARING SECARA BENAR

Bentuk injeksi SQL ini terjadi ketika masukan pengguna tidak disaring dari karakter-karakter pelolos 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
menjadikan pernyataan SQL ini oleh bahasa yang memuatnya:
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

♥PENANGANAN TYPE YANG SALAH

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 pelolos.

♥CELAH KEAMANAN DALAM SERVER BERBASIS DATA

Terkadang celah-celah keamanan dapat berada dalam perangkat lunak server basis data itu sendiri, seperti yang terjadi pada fungsi-fungsi real_escape_chars() di server MySQL

PERBAIKAN BASIS DATA

Mengatur hak-hak keamanan pada basis data ke kebutuhan yang paling minim adalah
sebuah perbaikan yang sederhana. Tidak banyak aplikasi yang memerlukan pengguna
untuk memiliki hak menghapus sebuah tabel atau basis data. Kebanyakan basis data juga menawaran kemampuan untuk menyiapkan pernyataan- pernyataan SQL pada lapisan basis data melalui stored procedure. Daripada menggunakan sebuah lapisan aplikasi untuk merangkai SQL secara dinamis, stored procedure membungkus prosedur-prosedur basis data pakai-ulang yang dipanggil dengan parameter-parameter bertipe . Ini menyediakan beberapa keuntungan keamanan dengan membuat masukan-masukan menjadi parameter dan mewajibkan tipe pada mereka, masukan pengguna secara efektif tersaring. Sebagai tambahan, kebanyakan basis data
mengizinkan stored procedure untuk berjalan di bawah hak-hak keamanan yang berbeda daripada pengguna basis data. Misalnya, sebuah aplikasi akan memiliki akses untuk menjalankan sebuah stored procedure, tetapi tidak memiliki akses ke tabel-tabel dasarnya. Ini membatasi kemampuan aplikasi untuk melakukan sesuatu yang di luar aksi-aksi yang dituliskan di dalam stored procedure. Yang juga penting untuk dicatat adalah metode kueri standar dari pustaka client C MySQL tidak akan mengizinkan lebih daripada sebuah kueri dalam sebuah masukan

Nama : Nisa Nurul
Kelas  : XII TKJ B

Tidak ada komentar:

Posting Komentar