1 Mei 20242
SQL Injection merupakan salah satu ancaman untuk aplikasi dan database kita. Ancaman ini merupakan proses untuk memasukkan kode yang berbahaya pada perintah SQL yang dijalankan di database aplikasi.
Ketika kawan-kawan menggunakan EF Core untuk berinteraksi dengan database aplikasi, SQL Injection dapat terjadi apabila kita tidak hati-hati dalam mengembangkan aplikasi kita. Nah, salah satu best practices untuk mencegah terjadinya SQL Injection ketika kita menggunakan EF Core, kita bisa menggunakan parameterized query untuk melindungi database.
Parameterized Query konsepnya sederhana namun powerful untuk melindungi database. Ketika kawan-kawan melakukan query ke database, kawan-kawan hanya perlu membuat variable untuk membungkus value pencarian sebelum menggabungkannya dengan perintah untuk database. EF Core akan menerjemahkan variable tadi menjadi parameterized query di SQL.
Contoh di bawah ini merupakan parameterized query karena menggunakan variable untuk menyimpan value pencarian yaitu Sudarmono.
Kode di atas akan diterjemahkan menjadi perintah SQL yang mempunyai parameter.
Sebagai perbandingan, contoh di bawah ini tidak menggunakan parameterized query. Value pencarian langsung dimasukkan ke dalam perintah Where.
Kemudian, perintah SQL akan menjadi seperti berikut.
Tanpa menggunakan parameterized query, perintah SQL kita menjadi rawan untuk SQL Injection. Kode yang berbahaya dapat dimasukkan ke perintah SQL yang dapat membahayakan data-data pada aplikasi kita. Value pencarian ‘Sudarmono’ dapat diganti dengan kode berbahaya dengan mudah apabila kita tidak menggunakan parameterized query.
Sangat mudah kan untuk membuat database kita lebih aman ketika kita menggunakan EF Core. Semoga bermanfaat untuk kawan-kawan semua.