PROMO PUNCAK LEBARAN DISKON 99%
Belajar Data Science 6 Bulan BERSERTIFIKAT hanya Rp 99K!

1 Hari 7 Jam 25 Menit 47 Detik

Cara Melindungi Bisnis dari SQL Injection

Belajar Data Science di Rumah 07-Maret-2023
https://dqlab.id/files/dqlab/cache/f216f909cc48680c87eaf27636facb84_x_Thumbnail800.jpeg

Kejahatan digital menjadi sering ditemukan seiring dengan adanya transformasi digital. Salah satunya adalah SQL injection. Aktivitas ini membuat para hacker dengan mudah dapat mengakses database meskipun melakukan login dengan input username dan password yang salah sekalipun. Hal ini pasti sangat membahayakan terutama bagi bisnis perusahaan.


SQL injection dapat diatasi dengan beberapa hal yang tentunya dilakukan dengan teknik tingkat tinggi. Seperti persiapkan validasi input atau gunakan kerangka khusus pelindung web atau aplikasi. Kali ini akan dibahas lebih dalam apa saja yang bisa Sahabat DQ lakukan untuk melindungi data dari kejahatan tersebut. Yuk, simak penjelasannya!


1. Gunakan Prosedur Tersimpan, Bukan SQL yang Dinamis

Perhatikan penjelasan berikut. Pada gambar di bawah, kalian dapat melihat hasil setelah pengguna mengeksekusi SQL injection di form login. Perhatikan bahwa pernyataan keempat diabaikan karena sintaks "–" menonaktifkan semua perintah yang sukses, dan pernyataan ketiga selalu mengembalikan "benar". Dengan demikian, pengguna berhasil login, bahkan ketika nama pengguna dan kata sandi salah.


SQL


SQL


Menggunakan prosedur tersimpan mencegah injeksi SQL terjadi karena parameter input selalu diperlakukan sebagai nilai teks aktual, bukan sebagai perintah. Versi pseudocode login baru yang ditunjukkan di bawah ini menggunakan prosedur tersimpan, alternatif yang jauh lebih aman dibandingkan dengan SQL dinamis. Prosedur tersimpan didefinisikan sebagai perintah SQL terkompilasi yang disimpan dalam server basis data yang dapat digunakan kembali berkali-kali oleh program eksternal.


SQL

SQL


Baca juga : Saatnya Belajar SQL, Kenali Rekomendasi Query SQL Bagi Pemula


2. Gunakan Prepared Statement (PS)

Prepared Statement (PS) merupakan perintah SQL pra-kompilasi yang dibuat di dalam program yang dapat digunakan berkali-kali selama siklus aplikasi. Secara default, parameter masukan PS dikunci. Parameter yang dikunci diperlakukan sebagai nilai teks biasa, yang mencegah perubahan perintah apapun selama serangan SQL injection. 


SQL


Perhatikan contoh di atas. Variasi PS dari query SQL dinamis yang diperkenalkan sebelumnya mempertahankan perilaku login yang dimaksud meskipun ada parameter injeksi SQL. Cara ini tidak akan menyebabkan SQL injection sukses dilakukan.


3. Gunakan Kerangka Object Relational Mapping (ORM)

ORM adalah teknik pemrograman di mana tabel dalam database diubah menjadi objek yang mewakili struktur database. Pemrogram dapat dengan aman menggunakan objek untuk berkomunikasi dengan tabel di database untuk menjalankan perintah seperti menyisipkan, memperbarui, mencari, dan menghapus.


SQL


Contoh dari kerangka ORM di Java adalah Hibernate. Perhatikan gambar di atas. Pada baris 2, "username '' dan "password" adalah parameter terikat yang ditetapkan pada baris ke-3 dan ke-4. Nilai yang melewati baris ke-3 dan ke-4 akan diperlakukan sebagai string dan bukan sebagai bagian dari perintah SQL. Perintah pada baris 5 bahkan lebih aman karena secara eksplisit memberi tahu Hibernate untuk mengharapkan hasil kueri tunggal untuk kredensial pengguna. 


Baca juga : Catat! Ini 3 Keuntungan Belajar SQL dalam Mengolah Data


4. Input Validation

Input validation berperan penting dalam mencegah injeksi SQL. Input yang mencurigakan disaring sebelum dikirim atau diproses oleh server saat divalidasi. Contoh validasi input adalah validator email. Ada dua jenis validasi: sisi server dan sisi klien.


SQL


Misalkan proses validasi dari sisi klien. Kolom input hanya menerima alamat email yang valid berdasarkan ekspresi reguler Dalam kasus layanan mikro di mana nilai diteruskan melalui REST API, validasi harus dilakukan di sisi server. Memberikan input nilai yang tidak sesuai dengan email ekspresi reguler akan ditolak oleh server. Server akan memberikan peringatan jika nilai yang dikirimkan bukan alamat email yang valid. Spring Framework salah satu dari sekian banyak framework pemrograman yang bisa digunakan untuk input validation, dan klien bebas memilih salah satu berdasarkan preferensi dan pengetahuan teknis mereka.


5. Gunakan Firewall Aplikasi Web

Meluncurkan situs web di Internet menghadapkan pada ancaman, karena rentan terhadap serangan. Untuk melindungi situs web, diperlukan firewall aplikasi web (WAF). Menurut OWASP.org, WAF adalah “firewall aplikasi untuk aplikasi HTTP. Itu menerapkan seperangkat aturan untuk percakapan HTTP. Umumnya, aturan ini mencakup serangan umum seperti skrip lintas situs (XSS) dan injeksi SQL.”


WAF adalah perlindungan lapisan 7 yang bekerja dengan memfilter pola injeksi SQL umum dalam permintaan HTTP. Berikut adalah dua WAF open source paling terkenal yang dapat digunakan melawan injeksi SQL:

  • ModSecurity: Ini adalah WAF open source populer yang dimiliki oleh TrustWave. WAF ini tidak memiliki UI, tetapi bekerja dengan baik melindungi terhadap injeksi SQL.

  • NGINX WAF: WAF ini didasarkan pada alat ModSecurity open source, dan telah dimodifikasi untuk penggunaan perusahaan. WAF ini memiliki UI logging audit yang memungkinkan administrator sistem untuk memantau situs web dari jarak jauh.

Kejahatan bisa terjadi dimana saja, bahkan di dunia digital sekalipun. Serangan SQL Injection bukanlah satu-satunya kejahatan yang akan kita temui, karena ada banyak sekali kejahatan siber yang mengancam website atau aplikasi yang kita miliki. Sehingga kita harus terus waspada dan terus meningkatkan keamanan website.


Namun sebelum masuk ke tingkat advance tersebut, ada baiknya belajar hal-hal yang bersifat fundamental dari SQL. Nah, DQLab menjadi solusi atas keresahan Sahabat DQ. Kalian bisa belajar mengasah kemampuan SQL melalui modul pembelajaran di website DQLab. Modul ini sangat cocok untuk pemula yang belum memiliki pemahaman terhadap SQL atau bukan dari background IT. Agar bisa mengaksesnya, kalian cukup berlangganan untuk menjadi member premium di DQLab. Segera Sign Up di website dan nikmati kemudahan belajar meski untuk pemula!


Penulis : Dita Feby 

Editor : Annissa Widya



Mulai Karier
sebagai Praktisi
Data Bersama
DQLab

Daftar sekarang dan ambil langkah
pertamamu untuk mengenal
Data Science.

Buat Akun


Atau

Sudah punya akun? Login