Mencegah dan Memperbaiki Celah SQL Injection
Lagi-lagi masalah keamanan pada suatu website dengan backend yang menggunakan bahasa pemrograman PHP dan MySQL. Salah satu serangan oleh attacker yang berbahaya dalam menyerang suatu website adalah serangan SQL Injection ini loh. Kebanyakan web developer lalay dalam hal mengamankan websitenya.
Untuk alur suatu website kan tentu saja, admin memasukan data ke dalam database lalu admin memanggil kembali data pada database. Nah untuk memanggil kembalinya itu perlu filterisasi yaa, agar tidak sembarang orang memanggil data yang sensitif dari database melalui website itu sendiri. Sedangkan untuk memasukkan data kedalam database juga perlu difilter ya dengan cara mencegah css & html injection pada form input.
Berikut ini adalah source code sederhana yang saya buat.
Dengan source code diatas apabila saya memasukkan kutip setelah nomer idnya maka akan menampilkan error yang berarti source code diatas bisa diinjeksi, seperti contoh gambar berikut.
Lalu bagaimana caranya untuk memperbaiki celah SQL Injection tersebut? Mudah saja, kita hanya perlu menambahkan fungsi mysqli_real_escape_string() pada isi dari variabel $id seperti contoh gambar berikut ini.
Seperti apa hasilnya bila kita sudah menambahkan fungsi tersebut? Ya, walaupun diberi kutip setalah id maka tidak akan tampil error yang berarti bug sql injection sudah berhasil diperbaiki. Nah segitu saja semoga bermanfaat, terimakasih.
Untuk alur suatu website kan tentu saja, admin memasukan data ke dalam database lalu admin memanggil kembali data pada database. Nah untuk memanggil kembalinya itu perlu filterisasi yaa, agar tidak sembarang orang memanggil data yang sensitif dari database melalui website itu sendiri. Sedangkan untuk memasukkan data kedalam database juga perlu difilter ya dengan cara mencegah css & html injection pada form input.
Berikut ini adalah source code sederhana yang saya buat.
Dengan source code diatas apabila saya memasukkan kutip setelah nomer idnya maka akan menampilkan error yang berarti source code diatas bisa diinjeksi, seperti contoh gambar berikut.
Sebelum diberi kutip |
Setelah diberi kutip |
Seperti apa hasilnya bila kita sudah menambahkan fungsi tersebut? Ya, walaupun diberi kutip setalah id maka tidak akan tampil error yang berarti bug sql injection sudah berhasil diperbaiki. Nah segitu saja semoga bermanfaat, terimakasih.