Lompat ke konten utama
←

Keamanan Siber untuk Organisasi

Pelajaran 11 dari 17

Kriptografi dan aplikasi web

Validasi input dan pencegahan injeksi SQL

Setelah pelajaran ini kamu bisa membedakan validasi sintaksis dan semantik, memilih allowlist di atas denylist, dan menyebut pertahanan utama injeksi SQL.

±14 menitDiperiksa 27 Sep 2026

Materi

OWASP mendefinisikan kerentanan injeksi sebagai cacat aplikasi yang membuat input pengguna yang tidak tepercaya dikirim ke interpreter, seperti peramban, basis data, atau baris perintah, lalu sebagian input itu dijalankan sebagai perintah. Glosarium NIST menyebut injeksi SQL sebagai serangan yang mencari situs yang meneruskan input pengguna tanpa pengolahan memadai ke basis data. Kelas ini membahas pencegahannya, bukan cara melakukannya.

Cheat sheet SQL Injection Prevention OWASP menyebut empat pilihan pertahanan: pernyataan siap pakai dengan kueri berparameter (prepared statement), prosedur tersimpan yang dibangun dengan benar, validasi input dengan allowlist, dan meng-escape semua input — yang terakhir ditandai sangat tidak dianjurkan. Kueri berparameter memaksa seluruh kode SQL ditulis lebih dulu, lalu nilai pengguna dikirim terpisah sebagai data, sehingga tidak bisa berubah menjadi perintah.

Validasi input bekerja di dua tingkat. Validasi sintaksis memeriksa bentuk: tanggal berformat benar, nomor telepon hanya angka. Validasi semantik memeriksa kebenaran nilai dalam konteks bisnis: tanggal mulai sebelum tanggal selesai, harga dalam rentang wajar. OWASP menyebut denylist, yaitu menolak karakter yang dianggap berbahaya seperti tanda petik, sebagai pendekatan yang sangat cacat: mudah dilewati dan menolak input sah seperti nama Ma'ruf. Allowlist, yang hanya menerima bentuk yang diizinkan, adalah metode utama. Validasi di sisi server wajib, karena validasi JavaScript di peramban bisa dilewati; di peramban ia hanya membantu kenyamanan pengguna.

Formulir izin cuti (contoh)AturanTingkat
Tanggal mulaiBerformat tanggal yang sahSintaksis
Jumlah hariBilangan bulat 1–12, tidak melebihi sisa cutiSintaksis lalu semantik
Jenis cutiSalah satu dari daftar tetap: tahunan, sakit, melahirkanAllowlist

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 1 dari 3

Formulir peminjaman ruang rapat punya dua aturan: "kode ruang tepat 4 karakter huruf dan angka" dan "jam selesai harus setelah jam mulai". Aturan kedua adalah validasi…

Pilih satu jawaban

Latihan 2 dari 3

Menurut cheat sheet SQL Injection Prevention OWASP, pertahanan mana yang disebut sebagai pilihan pertama?

Pilih satu jawaban

Latihan 3 dari 3

Pengembang menambah validasi JavaScript di formulir pendaftaran, sedangkan server menyimpan data apa pun yang diterimanya. Apa masalah utamanya menurut OWASP?

Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke