12.12 SUPER SALE! DISKON 98%
Belajar Data Science Bersertifikat, 6 BULAN hanya Rp 100K!
0 Hari 11 Jam 36 Menit 42 Detik

Prepared Statements dalam Memerangi SQL Injection

Belajar Data Science di Rumah 16-Juli-2024
https://dqlab.id/files/dqlab/cache/kv-2-banner-longtail-selasa-06-2024-07-16-203052_x_Thumbnail800.jpg

SQL Injection merupakan salah satu bentuk serangan keamanan yang paling umum dalam aplikasi berbasis web yang memanfaatkan database. Serangan ini memungkinkan penyerang untuk mengakses atau memanipulasi data secara tidak sah dengan cara menyisipkan atau memodifikasi perintah SQL. Salah satu metode efektif untuk menghindari serangan ini adalah dengan menggunakan Prepared Statements.


Artikel ini akan menjelaskan tentang apa itu SQL Injection hingga pembahasan soal prepared statements. Simak penjelasan lengkapnya berikut yuk sahabat DQLab!


1. Apa itu SQL Injection?

SQL Injection adalah teknik yang digunakan oleh penyerang untuk mengeksploitasi celah keamanan dalam aplikasi yang berinteraksi dengan database. Serangan ini biasanya dilakukan dengan memasukkan kode SQL berbahaya ke dalam input pengguna yang kemudian dieksekusi oleh database. Hal ini bisa mengakibatkan pengungkapan data yang sensitif, manipulasi data, hingga pengambilalihan penuh dari sistem database.


Contoh sederhana dari SQL Injection adalah ketika sebuah aplikasi web menerima input pengguna tanpa validasi atau pemfilteran yang memadai dan langsung memasukkan input tersebut ke dalam perintah SQL. Misalnya, pertimbangkan kode PHP berikut:


$username = $_POST['username'];
$password = $_POST['password'];
$query = "SELECT * FROM users WHERE username = '$username' AND password = '$password'";


Jika penyerang memasukkan admin'-- sebagai username dan sembarang password, perintah SQL yang dihasilkan akan menjadi:

SQL


Tanda -- adalah komentar di SQL, sehingga sisa perintah setelahnya diabaikan. Akibatnya, perintah ini akan selalu mengembalikan data untuk pengguna 'admin', sehingga penyerang dapat masuk sebagai admin tanpa mengetahui kata sandi.


Baca juga : Bootcamp Data Analyst with SQL and Python


2. Apa Itu Prepared Statements?

Prepared Statements adalah perintah SQL yang telah dikompilasi sebelumnya dan dapat dieksekusi beberapa kali dengan parameter yang berbeda. Mereka memisahkan logika perintah SQL dari data yang digunakan dalam perintah tersebut, yang secara drastis mengurangi risiko SQL Injection.


3. Bagaimana Prepared Statements Bekerja?

Prepared Statements bekerja dengan alur berikut:

Precompilation: Prepared Statements dikompilasi oleh server database sebelum eksekusi. Kompilasi ini dilakukan sekali dan kemudian dapat dieksekusi berkali-kali dengan berbagai parameter.


Parameter Binding: Parameter disisipkan dalam perintah SQL melalui placeholder. Placeholder ini tidak dievaluasi sebagai kode SQL, melainkan hanya sebagai data.


Execution: Setelah parameter disisipkan, perintah dieksekusi dengan aman karena server database hanya mengeksekusi perintah yang sudah dikompilasi, bukan perintah yang berisi data input langsung.


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


4. Contoh Penggunaan Prepared Statements

Misalnya, sebuah aplikasi memiliki fitur login yang rentan terhadap SQL Injection. Berikut adalah contoh perbandingan antara penggunaan query biasa dan Prepared Statements:


Tanpa Prepared Statements

SQL


Dengan Prepared Statements

SQL


Penggunaan Prepared Statements menghilangkan risiko injeksi SQL yang dapat terjadi jika pengguna memasukkan input yang berbahaya.


Penggunaan Prepared Statements adalah salah satu langkah paling efektif dalam memerangi SQL Injection. Dengan memisahkan perintah SQL dari data pengguna, Prepared Statements melindungi aplikasi dari serangan yang dapat mengakibatkan kerugian besar. Selain meningkatkan keamanan, Prepared Statements juga menawarkan keuntungan lain seperti peningkatan kinerja dan pengelolaan parameter yang lebih baik.


Oleh karena itu, setiap pengembang aplikasi berbasis web harus mempertimbangkan penggunaan Prepared Statements sebagai bagian dari strategi keamanan mereka. Implementasi yang tepat dari Prepared Statements adalah langkah proaktif dalam menjaga integritas dan keamanan data, serta melindungi aplikasi dari ancaman yang terus berkembang di dunia siber.


Kamu bisa belajar dasar-dasar SQL di DQLab. DQLab menyajikan materi secara teori maupun praktek. Selain itu di DQLab pun menyediakan berbagai modul dan ebook dengan materi yang beragam sesuai kebutuhan.


Cara bergabungnya sangat mudah. Langsung saja sign up di DQLab.id/signup dan nikmati belajar data science DQLab dan ikuti Bootcamp Data Analyst with SQL and Python


Penulis: Reyvan Maulid

Postingan Terkait

Mulai Karier
sebagai Praktisi
Data Bersama
DQLab

Daftar sekarang dan ambil langkah
pertamamu untuk mengenal
Data Science.

Daftar Gratis & Mulai Belajar

Mulai perjalanan karier datamu bersama DQLab

Daftar dengan Google

Sudah punya akun? Kamu bisa Sign in disini