Apa itu SQL Injection itu?
Sebelum Belajar SQL Injection alangkah baiknya kita ketahui terlebih dahulu apa itu SQL Injection ?, Menurut saya sederhananya adalah tidak ada sanitize/filter dalam request user dan sehingga user dapat memasukan kode jahat yang dapat memanipulasi permintaan yang di kirimkan terhadap server.
Belajar SQL Injection dan Cara Kerjanya
Contoh kasus sederhana dengan kode
SELECT * FROM artikel WHERE category = "belajarpentest"
bayangkan saja value “belajarpentest” menggunakan parameter yang di dapatkan dari request user (ex. http://localhost/news.php?cat=belajarpentest) lalu attacker memasukan kode jahat (ex. ” UNION SELECT username,password FROM users — –) maka yang terjadi di backend adalah seperti berikut
SELECT * FROM artikel WHERE category = "belajarpentest" UNION SELECT username,password FROM users -- -
dengan kode itu sistem akan mengembalikan output berisi username dan password di dalam tabel users. dibawah ini tips cara mencegah SQL Injection. Setelah belajar SQL Injection bagaiman cara pencegahannya ?.
Pencegahan
Dalam pencegahan terdapat beberapa cara sehingga kode jahat tidak dapat di suntikan contoh nya seperti memasang waf, memfilter, membatasi panjang input dan lain lain seperti di bawah ini.
Memasang WAF
Dengan memasang Web Application Firewall (WAF) dapat menyaring request yang mengandung serangan di internet seperti sql injection, xss, dan lainya dengan mencocokan query yang masuk dengan daftar query SQL berbahaya yang selalu terupdate. kalian bisa menggunakan layanan seperti cloudflare, akamai, atau sebagainya.
Memfilter input
Dengan memfilter input dapat memvalidasi permintaan pengguna, dalam php bisa menggunakan function berikut
- is_numeric()
- mysql_real_escape_string()
- addslashes()
Membatasi Input
Dengan membatasi jumlah karakter pada kotak pengisian. Misalnya, batasi form nama maksimal 25 karakter. Pembatasan ini mampu mengurangi risiko penulisan kode injeksi SQL pada form pengisian website Anda.
Mematikan Notifikasi Error
Jika website anda masih berada di local atau masih mengembangkan notifikasi error dapat membantu mengetahui error apa dan dimana tapi siapa sangka hacker dapat memastikan kesalahan kode anda dan mengeksploitasi sehingga saya menyarankan untuk mematikan dengan memasukan kode error_reporting(0);
pada file php
Mengatur Hak User SQL
Jangan pernah memakai user root jika website telah di gunakan oleh banyak orang, dan setting hak ke low privilege user.
Penutup
Selain bisa membuat suatu karya anda harus memfikirkan suatu hal yang terburuk yang akan terjadi. *fyi banyak kasus terjadi seperti banyak pembobolan website pemerintah atau kebocoran data menggunakan methode ini.
Baca Artikel Lainnya :
0 Comments