WEB16 / BELAJAR DAN MENCOBA
SQL Injection: akar masalah
Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.
Isi pelajaran ini
Kita belajar apa?
SQL dipakai untuk meminta data dari database. SQL injection terjadi jika tulisan pengguna bercampur dengan perintah SQL. Pada lab, mode vulnerable sengaja salah, sedangkan fixed memakai cara pemisahan data yang lebih tepat.
Bayangkan seperti ini
Seperti petugas salah mengira catatan pelanggan sebagai perintah dari pengelola toko.
Arti kata yang mungkin baru
- fixed
- mode lab yang memperbaiki kesalahan contoh
- vulnerable
- mode lab yang sengaja dibuat memiliki kesalahan untuk latihan
- database
- tempat program menyimpan dan mencari data secara teratur
Penjelasan tambahan jika kamu ingin tahu lebih jauh
SQL injection muncul ketika data input digabung menjadi sintaks query. SQLite lab menyimpan tiga produk fiktif dalam memori. Mode vulnerable memakai konkatenasi; mode fixed memisahkan struktur query dan parameter nilai. Fokus latihan adalah pembuktian lokal dan perbaikan.
Persiapan
Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.
- Unduh dan ekstrak ZIP lab dari halaman Perlengkapan ke komputer sendiri.
- Buka terminal di folder lab. Jalankan
python lab_web.py --enable-local-training. Gunakanpyataupython3jika itu nama Python pada perangkatmu. - Biarkan terminal tetap terbuka. Buka browser dan tulis
http://127.0.0.1:8765/pada bilah alamat di atas, lalu Enter. - Jika langkah menyebut
/noteatau nama halaman lain, tambahkan ke alamat lab. Contoh:http://127.0.0.1:8765/note?mode=fixed&id=1. Pilih mode lewat kotak pilihan jika tersedia. - Sesudah selesai, kembali ke terminal dan tekan Ctrl+C untuk menghentikan lab.
Langkah latihan
- Pastikan lab 8765 hidup.
- Buka /search dan pilih vulnerable.
- Cari apel sebagai percobaan normal.
- Cari satu tanda kutip biasa: '. Catat pesan yang muncul.
- Pilih fixed, kirim tanda kutip sama, dan bandingkan.
- Baca contoh fungsi search bersama penjelasan perbaikannya.
Hasil yang diharapkan
Vulnerable memberi error pada kutip tunggal; fixed menganggapnya sebagai teks pencarian. Error saja bukan bukti untuk target lain.
Bandingkan dengan hasilmu sendiri. Jika berbeda, tulis apa yang terlihat lalu baca bagian bantuan di bawah. Jangan mengaku berhasil jika langkahnya belum kamu coba.
Jika terhambat
Berhenti sebentar dan baca pesan yang muncul. Periksa nama file, folder, alamat, dan apakah program latihan masih berjalan. Ulangi satu langkah saja. Jika tetap bingung, minta bantuan guru atau pendamping; jangan mematikan keamanan perangkat.
Petunjuk khusus untuk pelajaran ini
Error tunggal belum membuktikan SQLi tanpa kode atau kontrol tambahan. Lab menyediakan sumber untuk mengonfirmasi akar masalah.
Apa yang perlu kamu catat?
Tulis langkah yang kamu lakukan dan hasil yang benar-benar terlihat. Tambahkan satu kalimat: “Saya belajar bahwa …”. Untuk latihan menggambar, simpan gambar dan jawabanmu.
Cek pemahamanmu
Mengapa kutip tunggal menyebabkan error pada vulnerable tetapi bukan fixed?
Buka pembahasan
Konkatenasi membuat kutip menjadi bagian sintaks SQL. Placeholder pada fixed memperlakukannya sebagai nilai data.
Tantangan mandiri
Tandai bagian kode yang merupakan struktur SQL dan bagian nilai pengguna.
Pedoman penilaian tantangan
Jawaban harus sesuai hasil aktual, menyebut batas kesimpulan, dan tidak keluar scope. Gunakan langkah serta hasil harapan pelajaran sebagai pembanding; nilai 0 bila belum ada, 1 bila sebagian, 2 bila jelas dan dapat ditinjau.
Perbaikan & retest
Gunakan parameter query untuk nilai; nama tabel/kolom dinamis perlu pemetaan pilihan milik aplikasi.
