JULY SPECIAL ! DISKON 96%
Belajar Data Science Bersertifikat, 12 Bulan hanya 180K!
1 Hari 14 Jam 24 Menit 27 Detik

4 Cara Preventif Menghindari SQL Injection

Belajar Data Science di Rumah 21-Juli-2023
https://dqlab.id/files/dqlab/cache/longtail-selasa-06-2023-07-22-231043_x_Thumbnail800.jpg

SQL Injection diperkenalkan ketika software developer membuat kueri basis data dinamis yang dibangun dengan rangkaian string yang mencakup input yang disediakan users. Sebenarnya, untuk menghindari SQL Injection sangat sederhana. Dua hal krusial yang harus dilakukan oleh developer adalah:

  1.  Berhenti menulis query dinamis dengan penggabungan string; dan/atau 

  2. Mencegah input yang disediakan users yang berisi SQL berbahaya agar tidak memengaruhi logika query yang dijalankan.

Pada artikel kali ini, kita akan membahas teknik sederhana untuk mencegah SQL Injection dengan menghindari dua masalah tersebut. Teknik-teknik ini dapat digunakan dengan hampir semua jenis bahasa pemrograman dengan semua jenis database. Ada jenis database lain, seperti database XML, yang dapat memiliki masalah serupa seperti Injeksi XPath dan XQuery dan teknik ini juga dapat digunakan untuk melindunginya. Penasaran apa saja teknik-teknik tersebut? Yuk kita simak bersama!


1. Menyiapkan Statements (ditambah Parameterized Queries)

Hal pertama yang bisa dilakukan adalah dengan menyiapkan statement yang telah ditambah dengan parameterized query atau dalam bahasa indonesia dikenal dengan kueri berparameter. Kueri berparameter ini memaksa developer untuk menentukan semua kode SQL terlebih dahulu, lalu meneruskan setiap parameter ke kueri nantinya. Dengan gaya coding ini, database dapat membedakan antara kode dan data, terlepas dari masukan users yang diberikan. Berikut adalah rekomendasi statement untuk beberapa bahasa pemrograman.

SQL

Baca juga : Bootcamp Data Analyst with SQL and Python


2. Stored Procedures

Stored Procedures tidak selalu aman dari SQL injection. Namun, konstruksi pemrograman prosedur tersimpan standar tertentu memiliki efek yang sama seperti penggunaan kueri berparameter ketika diimplementasikan dengan aman. Developer harus membangun statement SQL dengan parameter yang secara otomatis berparameter. Perbedaan antara teknik ini dan teknik pada poin satu adalah bahwa kode SQL untuk prosedur tersimpan didefinisikan dan disimpan dalam database itu sendiri, dan kemudian dipanggil dari aplikasi. Kedua teknik ini memiliki keefektifan yang sama dalam mencegah SQL injection.


3. Validasi List Input yang diizinkan

Banyak komponen dari kueri SQL yang tidak aman untuk penggunaan variabel ikat, seperti nama tabel atau kolom, dan indikator tata urutan (ASC atau DESC). Dalam situasi seperti itu, validasi input atau desain ulang kueri adalah pertahanan yang paling tepat. Untuk nama tabel atau kolom, idealnya nilai tersebut berasal dari kode, dan bukan dari parameter users.


4. Keluar Dari User-Supplied Input

Teknik ini sebaiknya hanya digunakan sebagai upaya terakhir jika ketiga cara di atas tidak bisa digunakan. Validasi input mungkin merupakan pilihan yang lebih baik karena teknik keempat ini lemah dibandingkan dengan pertahanan lain dan tidak menjamin teknik ini dapat mencegah semua SQL Injection di semua situasi.


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


Yuk pelajari cara menulis statement SQL bersama DQLab! DQLab adalah platform belajar online yang berfokus pada pengenalan Data Science dan Artificial Intelligence dengan menggunakan bahasa pemrograman populer seperti R dan Python. Menariknya, DQLab adalah platform edukasi pertama yang mengintegrasi fitur ChatGPT yang memudahkan beginner untuk mengakses informasi mengenai data science secara lebih mendalam.


DQLab juga menggunakan metode HERO yaitu Hands-On, Experiential Learning & Outcome-based, yang dirancang ramah untuk pemula. Jadi sangat cocok untuk kamu yang belum mengenal data science sama sekali. Untuk bisa merasakan pengalaman belajar yang praktis dan aplikatif, yuk sign up sekarang di DQLab.id atau ikuti DQLab LiveClass  Bootcamp Data Analyst with SQL and Python!  Ingin bangun portfolio? Yuk signup sekarang!


Penulis: Galuh Nurvinda K


Mulai Karier
sebagai Praktisi
Data Bersama
DQLab

Daftar sekarang dan ambil langkah
pertamamu untuk mengenal
Data Science.

Buat Akun


Atau

Sudah punya akun? Login