Anda di halaman 1dari 2

Nama : Muhammad Fachri

NIM : 2402313890

Cara Untuk mencegah SQL Injection :

1. Menggunakan Web Application Firewall.


Guna meminimalisir berbagai serangan. WAF membantu melindungi aplikasi web dengan
cara memfilter dan memantau lalu lintas HTTP antara aplikasi web dan internet. Firewall ini
melindungi aplikasi web dari serangan seperti pemalsuan lintas situs, cross-site scripting
(XSS), dan injeksi SQL.
2. Intrusion Prevention System (IPS)
adalah bentuk network security yang berfungsi untuk mendeteksi dan mencegah ancaman
yang diidentifikasi. Sistem pencegahan intrusi ini akan memantau jaringan kamu, mencari
kemungkinan terjadinya insiden berbahaya dan mencatat informasi tentangnya.
3. Menggunakan parameterized queries (juga dikenal sebagai prepared statements).
Sebagai Contoh Kode berikut rentan terhadap SQL injection karena input pengguna
digabungkan langsung ke dalam query:

String query = "SELECT * FROM products WHERE category = '"+ input + "'";
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(query);

Kode ini dapat dengan mudah ditulis ulang agar mencegah input pengguna mengganggu
struktur query:

PreparedStatement statement = connection.prepareStatement("SELECT * FROM products


WHERE category = ?");
statement.setString(1, input);
ResultSet resultSet = statement.executeQuery();

Agar parameterized query efektif dalam mencegah SQL injection, string yang digunakan
dalam query harus selalu berupa konstanta hard-coded dan tidak boleh mengandung data
variabel dari asal apapun. Jangan tergoda untuk memutuskan kasus demi kasus apakah suatu
data dapat dipercaya, dan tetap menggunakan penggabungan string dalam query untuk
kasus yang dianggap aman. Sangat mudah untuk membuat kesalahan tentang asal data yang
mungkin, atau untuk perubahan dalam kode lain melanggar asumsi tentang data yang
tercemar.
4. Menonaktifkan Informasi Pesan Kesalahan (Error).
Salah satu kebiasaan yang kerap kali dilakukan oleh pengembang aplikasi pada saat
masa pengembangan adalah mengaktifkan mode debug guna memudahkan pengembang
dalam menemukan kesalahan dalam aplikasi yang dikembangkannya. Namun kerap kali
pengembang lupa untuk menon aktifkan mode debug pada saat aplikasi memasuki masa
penggunaan (production).
Sehingga hal ini kerap kali menjadi keuntungan bagi penyerang dengan teknik SQL
injection untuk mengetahui parameter URL mana yang rentan terhadap serangan ini.
Sehingga untuk menghindari hal ini, cukup non-aktifkan mode debug pada aplikasi untuk
mencegah pesan error yang ditampilkan dimanfaatkan oleh pihak penyerang.
5. Menambahkan Escape Karakter.
Tambahkan escape karaketer yang memiliki makna khusus di SQL. Misalkan karakter yang
memiliki memiliki makna khusus di SQL yakni single quote (‘) di dalam paramater dapat
diinterpretasikan sebagai dua single quotes (‘’). Maka untuk menghindari kesalahan eksekusi
dalam database, tambahkan karakter escape seperti back slash, misal (\’). Sehingga karakter
single quote akan tetap diartikan sebagai single quote oleh database.

Anda mungkin juga menyukai