◈ CyberKitLEARNING LAB / ID

DUKUNG PENGEMBANGAN CYBERKIT

Bantu CyberKit tetap gratis.

Bantu kami menyempurnakan materi, mengembangkan lab localhost, dan menyiapkan panduan visual. Dukungan Anda melalui QRIS membantu pengembangan website ini. Donasi sukarela; seluruh materi tetap gratis, termasuk jika Anda belum berdonasi.

Lanjut ke materi gratis ↓

Penerima: BackToYouStore
NMID: ID1026497825467

Lihat QRIS donasi
QRIS donasi pengembangan CyberKit, penerima BackToYouStore, NMID ID1026497825467

Scan dengan aplikasi pembayaran yang mendukung QRIS, atau simpan gambar untuk digunakan di aplikasi Anda. Periksa nama penerima BackToYouStore sebelum mengonfirmasi.

Simpan gambar QRIS ↓Buka gambar ukuran asli ↗

Website ini tidak memproses atau mencatat transaksi dan tidak menampilkan status pembayaran.

CyberKit / Buku belajar

20 Fundamental + 40 Website. Semua langkah memakai data fiktif dan scope localhost. Materi tertulis tersedia; video dan validasi lintas perangkat belum lengkap. Gunakan cetak browser untuk menyimpan PDF.

F01 · Etika dan izinF02 · Dasar keamananF03 · Komputer dan prosesF04 · Sistem operasiF05 · File dan direktoriF06 · Terminal pertamaF07 · PermissionF08 · Python dasarF09 · Git lokalF10 · Lab pribadiF11 · IP dan localhostF12 · TCP dan UDPF13 · Port dan layananF14 · Nmap pada loopbackF15 · HTTP dan akunF16 · Bukti praktikF17 · CVE dan verifikasiF18 · Laporan keamananF19 · Mini-lab HTTPF20 · Proyek akhir FundamentalWEB01 · Browser dan serverWEB02 · HTML, CSS, JavaScriptWEB03 · URL dan originWEB04 · Request dan responseWEB05 · Arsitektur dan batas percayaWEB06 · DevTools untuk observasiWEB07 · Header HTTPWEB08 · Cookie dan sessionWEB09 · Proxy lokal: Burp atau ZAPWEB10 · Proyek observasi webWEB11 · Pemetaan permukaan lokalWEB12 · Baseline dan pengujian terkontrolWEB13 · curl dan reproduksi requestWEB14 · Validasi input dan batas dataWEB15 · Catatan dan reproduksibilitas toolsWEB16 · SQL Injection: akar masalahWEB17 · SQLi: bukti minimal dan retestWEB18 · XSS: teks menjadi markupWEB19 · XSS: bukti lokal tanpa data sensitifWEB20 · Review kode dan regresi injectionWEB21 · IDOR: objek milik siapaWEB22 · Matriks kontrol aksesWEB23 · Otorisasi pada serverWEB24 · Retest kontrol aksesWEB25 · Laporan Broken Access ControlWEB26 · Autentikasi: kegagalan rancanganWEB27 · Session dan logout: latihan desainWEB28 · JWT: decode bukan verifikasiWEB29 · API: field yang berlebihanWEB30 · Proyek API dan identitasWEB31 · CSRF: perubahan tanpa niat penggunaWEB32 · Upload dan path traversal: review amanWEB33 · SSRF dan pembatasan tujuanWEB34 · Konfigurasi, TLS, dependency dan errorWEB35 · Log, privasi dan penanganan buktiWEB36 · Metodologi audit dari scope sampai retestWEB37 · Dampak, prioritas dan rekomendasiWEB38 · Disclosure dan bug bounty: aturan kerjaWEB39 · Proyek akhir pentest lokalWEB40 · Rencana lanjut dan pemeliharaan pengetahuan

F01 / BELAJAR DAN MENCOBA

Etika dan izin

30–50 menit · Prasyarat: Tidak ada; mulai di sini

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Belajar keamanan komputer berarti belajar menemukan masalah dan membantu memperbaikinya. Kita hanya boleh mencoba pada komputer sendiri atau tempat yang memberi izin. Website yang bisa dibuka semua orang tetap bukan tempat latihan bebas.

Bayangkan seperti ini

Seperti memeriksa kunci rumah: kamu boleh memeriksa rumah sendiri, tetapi tidak boleh mencoba membuka rumah tetangga tanpa izin.

Arti kata yang mungkin baru

scope
batas target, cara, dan waktu yang boleh diuji
Penjelasan tambahan jika kamu ingin tahu lebih jauh

Pentesting adalah pengujian terencana untuk menemukan dan menjelaskan risiko. Izin harus menyebut target, waktu, metode, data, dan kontak penghentian. Akses publik bukan izin. Penemuan tidak sengaja tidak membenarkan eksplorasi lanjutan.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

Pelajaran ini tidak meminta kamu menjalankan server lab. Siapkan aplikasi atau file yang disebut pada langkah latihan di bawah.

Langkah latihan

  1. Buat folder bernama cyberkit di Documents.
  2. Buka aplikasi catatan, misalnya Notepad.
  3. Tulis: Saya berlatih di komputer sendiri. Alamat latihan saya 127.0.0.1.
  4. Tulis juga: Jika melihat data orang lain atau alamat berbeda, saya berhenti.
  5. Simpan dengan nama scope.txt di folder cyberkit.

Hasil yang diharapkan

Kamu memiliki catatan izin dan tahu kapan harus berhenti.

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

Jika tidak yakin siapa pemilik sistem, berhenti dan jangan menguji. Latihan ini tidak memerlukan IP sekolah, kantor, atau website umum.

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

Apakah website publik otomatis boleh diuji?

Buka pembahasan

Tidak. Harus ada izin yang jelas.

Tantangan mandiri

Tuliskan contoh permintaan yang keluar dari scope dan keputusan menghentikannya.

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

Batasi ruang lingkup dan minimalkan data bukti. Hapus data latihan setelah laporan selesai.

Referensi

F02 / BELAJAR DAN MENCOBA

Dasar keamanan

30–50 menit · Prasyarat: F01

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Ada tiga hal yang ingin kita jaga: data tidak dibaca sembarang orang, data tidak diubah sembarangan, dan data tetap bisa dipakai saat dibutuhkan. Satu masalah bisa mengganggu lebih dari satu hal.

Bayangkan seperti ini

Buku harian perlu dijaga agar tidak dibaca, dicoret, atau hilang.

Penjelasan tambahan jika kamu ingin tahu lebih jauh

Kerahasiaan melindungi siapa yang dapat membaca; integritas melindungi perubahan; ketersediaan menjaga layanan bisa dipakai. Risiko memadukan kemungkinan dan dampak, bukan sekadar jumlah alert. Kontrol mengurangi risiko tetapi tetap perlu diperiksa.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

Pelajaran ini tidak meminta kamu menjalankan server lab. Siapkan aplikasi atau file yang disebut pada langkah latihan di bawah.

Langkah latihan

  1. Buat catatan berisi tugas sekolah fiktif, bukan data pribadi.
  2. Salin catatan itu ke folder backup.
  3. Tulis satu cara agar catatan tidak dibaca orang lain.
  4. Tulis satu cara mengetahui jika isinya berubah.
  5. Buka salinan backup dan pastikan masih bisa dibaca.

Hasil yang diharapkan

Kamu bisa menjelaskan tiga tujuan keamanan dengan contoh sendiri.

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

Jika belum punya backup, gunakan file fiktif baru. Jangan menguji pemulihan dengan menghapus data penting.

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

Backup terutama membantu aspek apa?

Buka pembahasan

Ketersediaan; versi backup juga membantu pemulihan integritas.

Tantangan mandiri

Bedakan ancaman, kerentanan, dampak, dan kontrol dalam empat kalimat.

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

Uji pemulihan secara berkala; backup yang tidak pernah diuji belum memberi kepastian.

Referensi

F03 / BELAJAR DAN MENCOBA

Komputer dan proses

30–50 menit · Prasyarat: F02

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Komputer memakai bagian yang berbeda untuk bekerja. CPU menjalankan perintah, RAM menampung pekerjaan sementara, dan penyimpanan menyimpan file. Program yang sedang berjalan disebut proses.

Bayangkan seperti ini

CPU seperti orang yang mengerjakan tugas, RAM seperti meja kerja, dan penyimpanan seperti lemari buku.

Penjelasan tambahan jika kamu ingin tahu lebih jauh

CPU menjalankan instruksi, RAM menampung data kerja sementara, dan penyimpanan mempertahankan berkas. Proses memiliki identitas dan hak pengguna. Nilai CPU yang tinggi tidak otomatis menandakan malware; konteks aplikasi dan waktunya perlu dilihat.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

Pelajaran ini tidak meminta kamu menjalankan server lab. Siapkan aplikasi atau file yang disebut pada langkah latihan di bawah.

Langkah latihan

  1. Simpan pekerjaan yang sedang kamu buka.
  2. Pada Windows tekan Ctrl+Shift+Esc untuk membuka Task Manager. Pada Linux gunakan monitor sistem.
  3. Buka Notepad atau editor teks.
  4. Cari nama aplikasi itu dalam daftar proses.
  5. Tutup editor secara biasa dan lihat perubahan daftar. Jangan hentikan proses lain.

Hasil yang diharapkan

Kamu melihat bahwa aplikasi yang dibuka mempunyai proses. Angka memori tidak harus sama dengan contoh orang 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

Jangan hentikan proses sistem. Jika alat monitor tidak tersedia di Android, cukup gunakan pengaturan aplikasi; praktik desktop tidak identik dengan Termux.

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

Apakah proses sama dengan file?

Buka pembahasan

Tidak; proses adalah program yang sedang berjalan.

Tantangan mandiri

Jelaskan mengapa file program yang ada di disk belum tentu sedang berjalan.

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 akun biasa dan instal aplikasi dari proyek atau distributor resmi.

Referensi

F04 / BELAJAR DAN MENCOBA

Sistem operasi

30–50 menit · Prasyarat: F03

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Sistem operasi adalah program utama yang mengatur komputer. Windows dan Linux adalah contoh sistem operasi. Akun administrator mempunyai izin lebih besar, jadi kesalahan pada akun itu bisa berdampak lebih besar.

Bayangkan seperti ini

Sistem operasi seperti pengelola sekolah yang mengatur ruangan dan siapa boleh masuk.

Penjelasan tambahan jika kamu ingin tahu lebih jauh

OS mengatur perangkat, proses, pengguna, serta hak akses. Administrator dapat mengubah sistem; hak tersebut menambah dampak kesalahan. Versi OS membantu menentukan instruksi yang sesuai, tetapi nomor versi saja tidak membuktikan seluruh patch terpasang.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

Pelajaran ini tidak meminta kamu menjalankan server lab. Siapkan aplikasi atau file yang disebut pada langkah latihan di bawah.

Langkah latihan

  1. Buka pengaturan komputer.
  2. Cari bagian About atau Tentang perangkat.
  3. Catat nama dan versi sistem operasi. Jangan menyalin nama pemilik perangkat.
  4. Lihat jenis akun tanpa mengubahnya.
  5. Tulis kegiatan biasa yang tidak memerlukan izin administrator, misalnya membaca catatan.

Hasil yang diharapkan

Kamu tahu perangkat yang dipakai dan mengapa latihan biasa tidak perlu dijalankan sebagai administrator.

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

Nama menu berbeda antar distribusi. Jangan mencoba mendapatkan hak admin pada komputer bersama.

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

Kapan memakai administrator?

Buka pembahasan

Hanya ketika diperlukan dan setelah memahami perubahan.

Tantangan mandiri

Bedakan kernel, aplikasi pengguna, dan distribusi OS.

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

Pasang pembaruan melalui mekanisme resmi setelah backup dan sesuai kebijakan perangkat.

Referensi

F05 / BELAJAR DAN MENCOBA

File dan direktori

30–50 menit · Prasyarat: F04

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

File adalah satu berkas, misalnya catatan.txt. Folder adalah tempat mengelompokkan berkas. Alamat lokasi file disebut path. Menyalin membuat salinan, sedangkan memindahkan mengubah lokasinya.

Bayangkan seperti ini

File seperti satu buku dan folder seperti rak tempat menyimpan buku.

Arti kata yang mungkin baru

path
alamat lokasi file atau halaman
Penjelasan tambahan jika kamu ingin tahu lebih jauh

Path absolut dimulai dari akar seperti C:\ atau /. Path relatif bergantung folder aktif. Ekstensi membantu mengenali format tetapi dapat menipu; file bernama gambar.jpg.exe tetap program. Mengganti nama tidak mengonversi isi format.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

Pelajaran ini tidak meminta kamu menjalankan server lab. Siapkan aplikasi atau file yang disebut pada langkah latihan di bawah.

Langkah latihan

  1. Di folder cyberkit buat folder input dan backup.
  2. Buat input/catatan.txt dengan isi Halo CyberKit.
  3. Salin file itu ke folder backup.
  4. Ubah nama file salinan menjadi catatan-salinan.txt.
  5. Buka keduanya dan pastikan file asli masih ada.

Hasil yang diharapkan

Ada file asli dan salinan yang bisa dibaca. Kamu tidak perlu menghapus file penting untuk mencoba.

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

Jika ekstensi tersembunyi, aktifkan View > File name extensions pada Windows. Hindari file unduhan yang tidak dikenal.

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

Apa beda salin dan pindah?

Buka pembahasan

Salin menyisakan sumber; pindah mengubah lokasinya.

Tantangan mandiri

Buat struktur bukti/F01 dan jelaskan mengapa nama berkas konsisten membantu laporan.

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

Simpan cadangan sebelum operasi massal. Periksa path sebelum menyalin atau menghapus.

Referensi

F06 / BELAJAR DAN MENCOBA

Terminal pertama

30–50 menit · Prasyarat: F05

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Terminal adalah tempat menulis perintah kepada komputer. Perintah harus sesuai sistem operasi. Kita mulai dengan melihat lokasi dan membaca file, bukan menghapus sesuatu.

Bayangkan seperti ini

Seperti memberi petunjuk tertulis: petunjuk yang salah alamat bisa menghasilkan jawaban yang berbeda.

Penjelasan tambahan jika kamu ingin tahu lebih jauh

Terminal menerima perintah melalui shell. PowerShell dan Bash memiliki sintaks berbeda; contoh tidak selalu bisa dipertukarkan. Spasi memisahkan argumen sehingga path dengan spasi perlu tanda kutip. Membaca pesan error lebih berguna daripada mengulang perintah secara acak.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

Pelajaran ini tidak meminta kamu menjalankan server lab. Siapkan aplikasi atau file yang disebut pada langkah latihan di bawah.

Langkah latihan

  1. Buka terminal dari folder cyberkit. Di Windows bisa memakai PowerShell.
  2. Windows: ketik Get-Location lalu Enter. Linux/Termux: ketik pwd lalu Enter.
  3. Windows: ketik Get-ChildItem. Linux/Termux: ketik ls. Ini menampilkan isi folder.
  4. Windows: ketik Get-Content input/catatan.txt. Linux/Termux: ketik cat input/catatan.txt.
  5. Jika file tidak ditemukan, cocokkan lokasi folder dan nama file. Jangan menyalin tanda PS> atau $ sebagai perintah.

Hasil yang diharapkan

Lokasi folder, daftar file, dan tulisan Halo CyberKit terlihat di terminal.

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

File not found: periksa direktori aktif, ejaan, dan huruf besar kecil. Jangan menyalin tanda prompt $ atau PS> sebagai perintah.

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 memeriksa direktori aktif?

Buka pembahasan

Agar operasi file mengenai lokasi yang dimaksud.

Tantangan mandiri

Baca file pada folder yang namanya mengandung spasi memakai tanda kutip.

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

Jangan menjalankan perintah yang belum dipahami, terutama yang menghapus atau mengambil skrip jarak jauh.

Referensi

F07 / BELAJAR DAN MENCOBA

Permission

30–50 menit · Prasyarat: F06

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Tidak semua orang boleh membaca atau mengubah semua file. Aturan siapa boleh melakukan apa disebut hak akses atau permission. Untuk awal, cukup melihat aturannya tanpa mengubah file sistem.

Bayangkan seperti ini

Kunci lemari menentukan siapa bisa membuka dan mengambil isinya.

Arti kata yang mungkin baru

permission
aturan siapa boleh membaca, mengubah, atau menjalankan sesuatu
Penjelasan tambahan jika kamu ingin tahu lebih jauh

Permission menentukan subjek yang boleh membaca, menulis, atau mengeksekusi. Di Unix ada pemilik, grup, dan lainnya; direktori memerlukan hak traversal. Windows memakai ACL yang lebih rinci. Permission tidak sama dengan enkripsi: administrator masih mungkin mengakses data.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

Pelajaran ini tidak meminta kamu menjalankan server lab. Siapkan aplikasi atau file yang disebut pada langkah latihan di bawah.

Langkah latihan

  1. Pilih file latihan input/catatan.txt.
  2. Windows: klik kanan, pilih Properties lalu Security. Linux: jalankan ls -l input/catatan.txt.
  3. Cari keterangan membaca dan menulis.
  4. Catat siapa yang memiliki akses. Jangan membagikan nama akun pribadi.
  5. Tutup pengaturan tanpa mengubah aturan file sistem.

Hasil yang diharapkan

Kamu bisa membedakan izin membaca dan izin mengubah file.

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

Akun root/admin dapat memengaruhi hasil uji. Jika tidak paham ACL, batasi ke observasi; jangan memakai chmod 777.

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

Apakah semua file perlu hak penuh?

Buka pembahasan

Tidak. Berikan hak minimum yang diperlukan.

Tantangan mandiri

Jelaskan beda hak execute pada file dan traversal pada direktori.

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

Terapkan hak minimum pada folder aplikasi dan simpan rahasia di luar direktori publik.

Referensi

F08 / BELAJAR DAN MENCOBA

Python dasar

30–50 menit · Prasyarat: F07

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Python adalah bahasa untuk menulis perintah yang dijalankan komputer. Perintah print menampilkan tulisan atau hasil hitungan. Huruf besar dan kecil bisa mengubah arti nama perintah.

Bayangkan seperti ini

Menulis program seperti menulis resep: urutan dan nama langkah perlu tepat.

Arti kata yang mungkin baru

Python
bahasa dan alat untuk menjalankan program contoh
Penjelasan tambahan jika kamu ingin tahu lebih jauh

Python mengeksekusi instruksi melalui interpreter. String adalah teks; integer adalah bilangan bulat. Error sintaks berarti program belum bisa diparse, sedangkan error runtime muncul ketika instruksi dijalankan. Membuat lingkungan terpisah menghindari campuran dependensi.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

Pelajaran ini tidak meminta kamu menjalankan server lab. Siapkan aplikasi atau file yang disebut pada langkah latihan di bawah.

Langkah latihan

  1. Pasang Python dari python.org sesuai komputer. Pada Windows buka terminal baru setelah pemasangan.
  2. Ketik python --version. Jika tidak dikenal, coba py --version di Windows atau python3 --version di Linux.
  3. Buka Notepad, tulis contoh halo.py di bawah. Simpan sebagai halo.py, bukan halo.py.txt.
  4. Di terminal folder yang sama, jalankan python halo.py. Gunakan py atau python3 jika itu yang berhasil pada langkah sebelumnya.
  5. Lihat tulisan dan angka yang muncul, lalu ubah nama Pelajar menjadi nama panggilan fiktif.

Hasil yang diharapkan

Contoh menampilkan Halo Pelajar dan angka 5. Kamu bisa mengubah tulisan sendiri.

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

Jika Python membuka Store atau tidak ditemukan, periksa pemasangan dan buka terminal baru. Paket lab memakai pustaka standar, tanpa pip.

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

Apa fungsi print?

Buka pembahasan

Menampilkan nilai ke keluaran terminal.

Tantangan mandiri

Tambahkan variabel jumlah = 2 + 3 lalu tampilkan 5.

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

Unduh interpreter dari sumber resmi; jangan menjalankan skrip tidak dikenal dengan hak admin.

Referensi

F09 / BELAJAR DAN MENCOBA

Git lokal

30–50 menit · Prasyarat: F08

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Git membantu menyimpan riwayat perubahan file. Kamu bisa melihat apa yang berubah tanpa mengingat semuanya. Latihan Git ini hanya di komputer sendiri dan tidak memerlukan akun GitHub.

Bayangkan seperti ini

Seperti menyimpan beberapa versi karangan sehingga bisa melihat perbedaannya.

Arti kata yang mungkin baru

Git
alat pencatat riwayat perubahan file
Penjelasan tambahan jika kamu ingin tahu lebih jauh

Git menyimpan snapshot perubahan. Working tree adalah file kerja, staging area memilih isi commit, dan commit menyimpan snapshot lokal. Git tidak memerlukan GitHub atau login. Menambahkan rahasia lalu menghapusnya pada commit baru tidak menghapus rahasia dari riwayat.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

Pelajaran ini tidak meminta kamu menjalankan server lab. Siapkan aplikasi atau file yang disebut pada langkah latihan di bawah.

Langkah latihan

  1. Pasang Git dari git-scm.com, lalu ketik git --version.
  2. Buka terminal di folder cyberkit dan ketik git init.
  3. Atur nama latihan: git config user.name "Pelajar". Lalu: git config user.email "pelajar@example.invalid".
  4. Ketik git add input/catatan.txt lalu git commit -m "Catatan pertama".
  5. Ubah catatan dan jalankan git diff untuk melihat perubahannya. Jangan simpan password dalam Git.

Hasil yang diharapkan

Ada satu titik simpan riwayat. Perubahan baru terlihat melalui git diff.

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

Jika identitas belum diatur, gunakan konfigurasi lokal di atas. Jangan melakukan git init di folder seluruh Documents atau mengunggah repository pribadi.

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

Apakah git add sudah membuat commit?

Buka pembahasan

Belum; add hanya menyiapkan perubahan.

Tantangan mandiri

Buat .gitignore yang mengabaikan rahasia.txt sebelum membuat file contoh itu.

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

Rahasia yang terlanjur dipublikasikan harus dicabut atau diganti; menghapus file saja tidak cukup.

Referensi

F10 / BELAJAR DAN MENCOBA

Lab pribadi

30–50 menit · Prasyarat: F09

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Lab adalah tempat latihan. Lab CyberKit dijalankan di komputer sendiri dengan data buatan. Alamat 127.0.0.1 selalu menunjuk perangkat yang sedang kamu pakai.

Bayangkan seperti ini

Seperti latihan sains di meja sendiri sebelum memakai peralatan yang lebih besar.

Arti kata yang mungkin baru

server
program yang menerima permintaan lalu memberi jawaban
browser
aplikasi untuk membuka website
port
nomor layanan pada sebuah alamat komputer
HTTP
aturan bertukar pesan antara klien dan server web
Python
bahasa dan alat untuk menjalankan program contoh
Penjelasan tambahan jika kamu ingin tahu lebih jauh

Loopback membatasi koneksi ke perangkat sendiri, tetapi aplikasi lokal tetap perlu batas keamanan. Lab sengaja rentan memakai data fiktif dan proses terpisah. Bind jaringan 0.0.0.0 atau :: membuka akses lebih luas; tidak digunakan di kursus ini.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

Jalankan lab hanya jika langkah latihan memintanya. Untuk lab dasar: python server_aman.py, lalu buka http://127.0.0.1:8000/. Untuk latihan menggambar atau membaca file, server tidak diperlukan.

Langkah latihan

  1. Unduh ZIP lab dari halaman Perlengkapan.
  2. Ekstrak di folder latihan komputer, bukan di hosting.
  3. Buka terminal di folder hasil ekstraksi.
  4. Jalankan python server_aman.py, lalu buka http://127.0.0.1:8000/health di browser. Sesuaikan nama Python seperti F08.
  5. Hentikan dengan Ctrl+C. Jangan mengubah alamat server, membuka tunnel, atau membuka port router.

Hasil yang diharapkan

Saat server hidup, halaman menampilkan status ok. Setelah dihentikan, sambungan tidak berhasil.

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

Address already in use berarti port dipakai proses lain. Hentikan proses lab sebelumnya; jangan mematikan proses yang tidak dikenal.

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

Apakah 0.0.0.0 sama dengan localhost?

Buka pembahasan

Tidak; bind 0.0.0.0 dapat menerima koneksi dari jaringan.

Tantangan mandiri

Gambar batas komputer sendiri dan tempat menyimpan paket publik versus lab.

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

Jaga lab terpisah dari akun dan data sungguhan; reset proses menghapus state demonstrasi.

Referensi

F11 / BELAJAR DAN MENCOBA

IP dan localhost

30–50 menit · Prasyarat: F10

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Alamat IP membantu komputer mengetahui tujuan sambungan. Alamat 127.0.0.1 khusus menuju perangkat sendiri. Alamat komputer di Wi-Fi rumah berbeda dari alamat khusus ini.

Bayangkan seperti ini

Alamat rumah membantu kurir menemukan tujuan. Loopback seperti menaruh paket di meja sendiri.

Arti kata yang mungkin baru

browser
aplikasi untuk membuka website
Penjelasan tambahan jika kamu ingin tahu lebih jauh

IP mengidentifikasi antarmuka jaringan. 127.0.0.1 adalah IPv4 loopback; ::1 adalah IPv6 loopback. Alamat privat LAN bukan loopback: perangkat lain di jaringan dapat menjangkaunya bila aturan mengizinkan. DNS memetakan nama ke alamat, bukan bukti kepemilikan.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

Jalankan lab hanya jika langkah latihan memintanya. Untuk lab dasar: python server_aman.py, lalu buka http://127.0.0.1:8000/. Untuk latihan menggambar atau membaca file, server tidak diperlukan.

Langkah latihan

  1. Ingat target latihan: 127.0.0.1.
  2. Windows boleh melihat ipconfig. Linux boleh melihat ip addr jika tersedia.
  3. Cari alamat loopback tanpa membagikan seluruh hasil.
  4. Buka lab dari browser pada komputer yang menjalankan lab.
  5. Jika memakai ponsel berbeda, jangan berharap 127.0.0.1 menuju laptop.

Hasil yang diharapkan

Kamu tahu bahwa localhost pada ponsel berarti ponsel itu sendiri, bukan komputer 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

Di Termux akses informasi jaringan dapat dibatasi Android. Gunakan alamat loopback yang sudah diketahui; jangan mencari cara melewati batas OS.

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

Ke mana 127.0.0.1 menuju?

Buka pembahasan

Ke perangkat sendiri.

Tantangan mandiri

Jelaskan mengapa mengakses localhost pada ponsel tidak menuju laptop Anda.

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

Batas akses harus didukung bind dan firewall, bukan sekadar menyembunyikan alamat.

Referensi

F12 / BELAJAR DAN MENCOBA

TCP dan UDP

30–50 menit · Prasyarat: F11

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

TCP dan UDP adalah dua cara mengirim data. TCP membantu menjaga urutan data. UDP mengirim bagian data tanpa jaminan urutan atau sampai dari protokol itu sendiri. Aplikasi bisa menambah aturan lain.

Bayangkan seperti ini

TCP seperti kiriman bernomor yang diperiksa urutannya. UDP seperti mengirim kartu pos satu per satu. Perbandingan ini hanya gambaran sederhana.

Arti kata yang mungkin baru

server
program yang menerima permintaan lalu memberi jawaban
browser
aplikasi untuk membuka website
HTTP
aturan bertukar pesan antara klien dan server web
Penjelasan tambahan jika kamu ingin tahu lebih jauh

TCP menyediakan aliran byte berurutan dengan retransmisi; UDP mengirim datagram dengan overhead berbeda tanpa jaminan urutan/pengiriman dari protokolnya. Aplikasi di atas keduanya bisa menambahkan kontrol lain. HTTP/1.1 lab ini memakai TCP; tidak semua HTTP modern memakai TCP.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

Pelajaran ini tidak meminta kamu menjalankan server lab. Siapkan aplikasi atau file yang disebut pada langkah latihan di bawah.

Langkah latihan

  1. Gambar browser dan server lab di kertas.
  2. Hubungkan keduanya dengan garis bertuliskan TCP.
  3. Buat tabel kecil TCP dan UDP.
  4. Tulis bahwa HTTP lab memakai TCP; jangan menyimpulkan semua HTTP selalu begitu.
  5. Ceritakan mengapa data yang datang tidak urut bisa menyulitkan pembaca.

Hasil yang diharapkan

Kamu memahami perbedaan dasar tanpa harus menghafal semua rincian jaringan.

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

DevTools biasanya menunjukkan request HTTP, bukan paket TCP mentah. Jangan menyimpulkan detail paket yang tidak terlihat.

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

Apakah UDP menjamin pesan sampai?

Buka pembahasan

Tidak.

Tantangan mandiri

Mengapa aplikasi real-time kadang memilih UDP meskipun paket dapat hilang?

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

Pilih transport sesuai kebutuhan; enkripsi dan autentikasi tetap diperlukan di lapisan yang tepat.

Referensi

F13 / BELAJAR DAN MENCOBA

Port dan layanan

30–50 menit · Prasyarat: F12

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Satu komputer bisa menjalankan beberapa layanan. Nomor port membantu memilih layanan yang dituju. Dalam lab, angka 8000 adalah nomor layanan latihan, bukan nomor yang selalu dipakai semua website.

Bayangkan seperti ini

Alamat komputer seperti alamat gedung, sedangkan port seperti nomor ruangannya.

Arti kata yang mungkin baru

server
program yang menerima permintaan lalu memberi jawaban
port
nomor layanan pada sebuah alamat komputer
HTTP
aturan bertukar pesan antara klien dan server web
Penjelasan tambahan jika kamu ingin tahu lebih jauh

Port adalah nomor endpoint transport, bukan nama aplikasi yang pasti. Port 8000 pada contoh hanya pilihan kursus. Layanan dapat berjalan pada port lain. Koneksi gagal dapat disebabkan bind berbeda, port salah, firewall, atau server mati; diagnosis harus menguji satu dugaan per langkah.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

Jalankan lab hanya jika langkah latihan memintanya. Untuk lab dasar: python server_aman.py, lalu buka http://127.0.0.1:8000/. Untuk latihan menggambar atau membaca file, server tidak diperlukan.

Langkah latihan

  1. Jalankan server_aman.py.
  2. Buka http://127.0.0.1:8000/ lalu /health.
  3. Coba port 8001 tanpa menjalankan server di sana.
  4. Hentikan server 8000 dengan Ctrl+C.
  5. Muat ulang /health dan catat apa yang berubah.

Hasil yang diharapkan

Port yang benar bisa dijangkau saat server hidup. Server mati atau port salah dapat menyebabkan sambungan gagal.

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

Browser mungkin menampilkan cache. Lakukan reload dan periksa Network. Jangan memindai seluruh jaringan untuk mencari port.

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

Apa arti connection refused?

Buka pembahasan

Sering berarti tidak ada layanan yang mendengarkan pada alamat/port itu.

Tantangan mandiri

Tuliskan pohon diagnosis singkat ketika /health tidak muncul.

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

Dokumentasikan port layanan dan tutup layanan yang tidak diperlukan.

Referensi

F14 / BELAJAR DAN MENCOBA

Nmap pada loopback

30–50 menit · Prasyarat: F13

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Nmap adalah alat untuk melihat apakah sebuah port menerima sambungan. Port terbuka belum berarti ada kelemahan keamanan. Kita hanya memeriksa satu port milik sendiri.

Bayangkan seperti ini

Pintu terbuka memberi tahu pintu bisa dilewati, bukan membuktikan isi ruangan rusak.

Arti kata yang mungkin baru

server
program yang menerima permintaan lalu memberi jawaban
port
nomor layanan pada sebuah alamat komputer
Penjelasan tambahan jika kamu ingin tahu lebih jauh

Nmap mengamati respons jaringan untuk memperkirakan status port. Open berarti koneksi diterima, closed berarti ditolak secara aktif, filtered berarti observasi terhalang atau tidak mendapat respons yang cukup. Temuan port bukan bukti kerentanan atau versi produk.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

Jalankan lab hanya jika langkah latihan memintanya. Untuk lab dasar: python server_aman.py, lalu buka http://127.0.0.1:8000/. Untuk latihan menggambar atau membaca file, server tidak diperlukan.

Langkah latihan

  1. Pasang Nmap dari nmap.org dan periksa nmap --version.
  2. Jalankan server aman seperti F10.
  3. Ketik nmap -sT -p 8000 127.0.0.1.
  4. Catat apakah tertulis open.
  5. Hentikan server dan ulangi perintah. Jangan mengganti target ke jaringan sekolah atau orang lain.

Hasil yang diharapkan

Biasanya muncul open saat server hidup dan closed setelah mati. Jika berbeda, catat hasil asli dan periksa kondisi perangkat.

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

Filtered atau timeout tidak membuktikan server mati. Pastikan target tepat dan jangan menonaktifkan firewall sistem untuk memaksa hasil.

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

Apakah port open membuktikan kerentanan?

Buka pembahasan

Tidak; hanya menunjukkan layanan menerima koneksi.

Tantangan mandiri

Jelaskan mengapa label http-alt tidak memastikan aplikasi tertentu.

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

Batasi pemindaian pada scope dan gunakan pemeriksaan layanan aplikasi untuk konfirmasi.

Referensi

F15 / BELAJAR DAN MENCOBA

HTTP dan akun

30–50 menit · Prasyarat: F14

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Browser dan server saling bertukar pesan dengan HTTP. HTTPS menambah perlindungan saat pesan lewat jaringan. Akun tetap perlu password yang berbeda-beda dan perlindungan tambahan seperti MFA.

Bayangkan seperti ini

Amplop melindungi surat di perjalanan, tetapi isi surat masih bisa salah. HTTPS juga tidak membuat semua isi aplikasi otomatis aman.

Arti kata yang mungkin baru

server
program yang menerima permintaan lalu memberi jawaban
browser
aplikasi untuk membuka website
request
pesan permintaan dari browser atau alat
HTTP
aturan bertukar pesan antara klien dan server web
Penjelasan tambahan jika kamu ingin tahu lebih jauh

HTTP adalah pertukaran request dan response. HTTPS membungkus HTTP dengan TLS untuk melindungi lalu lintas dalam perjalanan; ia tidak menjamin aplikasi bebas bug. Password unik dan MFA membatasi dampak kredensial bocor, tetapi tidak menggantikan otorisasi server.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

Jalankan lab hanya jika langkah latihan memintanya. Untuk lab dasar: python server_aman.py, lalu buka http://127.0.0.1:8000/. Untuk latihan menggambar atau membaca file, server tidak diperlukan.

Langkah latihan

  1. Jalankan lab aman dan buka /health.
  2. Buka alat pengembang browser, lalu tab Network.
  3. Muat ulang dan cari request /health.
  4. Catat GET, angka 200, dan tulisan status ok.
  5. Tulis dua kebiasaan akun aman tanpa menulis password sungguhan.

Hasil yang diharapkan

Kamu melihat satu pertukaran pesan web dan bisa membedakan keamanan sambungan dari keamanan akun.

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

Jangan menginstal sertifikat proxy untuk akun pribadi. Latihan loopback HTTP tidak memerlukan sertifikat.

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

Apakah HTTP mengenkripsi lalu lintas?

Buka pembahasan

Tidak; HTTPS menambahkan TLS.

Tantangan mandiri

Mengapa situs HTTPS masih mungkin memiliki IDOR?

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 HTTPS pada publik, password manager, MFA, serta validasi hak akses di server.

Referensi

F16 / BELAJAR DAN MENCOBA

Bukti praktik

30–50 menit · Prasyarat: F15

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Bukti latihan adalah catatan tentang apa yang benar-benar kamu lakukan. Jangan menyalin hasil contoh lalu mengaku itu hasil perangkatmu. Catatan yang baik membuat orang lain dapat mengikuti langkah yang sama.

Bayangkan seperti ini

Seperti laporan praktikum IPA: tulis percobaan dan hasil pengamatan, bukan hanya kesimpulan.

Arti kata yang mungkin baru

localhost
komputer atau perangkat yang sedang kamu pakai sendiri
request
pesan permintaan dari browser atau alat
Penjelasan tambahan jika kamu ingin tahu lebih jauh

Bukti baik menunjukkan apa yang benar-benar terjadi dan dapat direproduksi. Screenshot saja mungkin kehilangan request dan konteks. Output harus menyebut target, waktu, versi lab, langkah, harapan, hasil aktual, serta batas kesimpulan. Hindari data rahasia dan identitas nyata.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

Pelajaran ini tidak meminta kamu menjalankan server lab. Siapkan aplikasi atau file yang disebut pada langkah latihan di bawah.

Langkah latihan

  1. Unduh template laporan dari Perlengkapan.
  2. Isi tanggal, target localhost, dan nama lab.
  3. Lakukan satu request /health.
  4. Tulis hasil yang kamu harapkan dan hasil yang benar-benar terlihat.
  5. Hilangkan nama akun, password, dan data pribadi dari bukti.

Hasil yang diharapkan

Ada catatan yang membedakan contoh hasil dan hasil pengamatan sendiri.

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

Jika hasil berbeda dari contoh, tulis apa adanya. Jangan menyalin output harapan sebagai bukti aktual.

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

Bolehkah token disertakan sebagai bukti publik?

Buka pembahasan

Tidak; rahasiakan atau sensor.

Tantangan mandiri

Buat nama bukti F16-health-01.txt dan hubungkan dari laporan.

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

Minimalkan bukti, batasi akses laporan, dan tetapkan jadwal penghapusan.

Referensi

F17 / BELAJAR DAN MENCOBA

CVE dan verifikasi

30–50 menit · Prasyarat: F16

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

CVE adalah nomor pengenal untuk masalah keamanan yang dipublikasikan. Menemukan nama program dalam sebuah CVE belum membuktikan semua versi program itu bermasalah. Kita perlu membaca versi dan syaratnya.

Bayangkan seperti ini

Seperti pengumuman penarikan produk: harus cocok jenis dan nomor produksinya, bukan hanya mereknya.

Penjelasan tambahan jika kamu ingin tahu lebih jauh

CVE adalah identitas kerentanan yang dipublikasikan, bukan daftar semua kelemahan dan bukan skor risiko lokal. Produk dapat memakai komponen terdampak hanya pada konfigurasi tertentu. Advisory vendor dan versi perbaikan lebih berguna daripada mencocokkan nama saja.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

Pelajaran ini tidak meminta kamu menjalankan server lab. Siapkan aplikasi atau file yang disebut pada langkah latihan di bawah.

Langkah latihan

  1. Buka cve.org melalui katalog tools.
  2. Pilih satu catatan CVE untuk dibaca, tanpa menjalankan contoh serangan.
  3. Cari nama produk dan versi yang disebut.
  4. Ikuti tautan penjelasan dari pembuat produk jika tersedia.
  5. Tulis apa yang diketahui dan bagian yang masih perlu dicari.

Hasil yang diharapkan

Kamu membuat ringkasan berdasarkan sumber, bukan menebak bahwa perangkat tertentu pasti rentan.

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

Jika versi perbaikan tidak ditemukan, tulis belum diketahui. Jangan mengarang nomor patch.

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

Apakah kecocokan nama produk cukup?

Buka pembahasan

Tidak; cocokkan versi, konfigurasi, dan prasyarat.

Tantangan mandiri

Bedakan identitas CVE, tingkat keparahan teknis, dan prioritas perbaikan organisasi.

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

Inventaris komponen dan verifikasi pembaruan dengan advisory resmi.

Referensi

F18 / LATIHAN MENYUSUN HASIL

Laporan keamanan

30–50 menit · Prasyarat: F17

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Laporan keamanan menjelaskan masalah, bukti, akibat, dan cara memperbaikinya. Gunakan kalimat yang bisa diperiksa. Jangan melebih-lebihkan akibat yang tidak kamu buktikan.

Bayangkan seperti ini

Seperti melaporkan kursi kelas yang rusak: sebut kursi mana, bagian mana, dan apa yang perlu diperbaiki.

Penjelasan tambahan jika kamu ingin tahu lebih jauh

Laporan menghubungkan kelemahan teknis dengan dampak yang terbukti dalam scope. Severity perlu alasan, bukan angka tanpa konteks. Rekomendasi harus menyebut akar masalah; retest memeriksa perbaikan dan fungsi normal. Temuan yang belum direproduksi harus disebut dugaan.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

Pelajaran ini tidak meminta kamu menjalankan server lab. Siapkan aplikasi atau file yang disebut pada langkah latihan di bawah.

Langkah latihan

  1. Buka template laporan.
  2. Isi target dan izin latihan.
  3. Tulis langkah berurutan serta hasil sebenarnya.
  4. Jelaskan akibat yang terlihat pada data lab saja.
  5. Tambahkan cara memeriksa ulang setelah diperbaiki.

Hasil yang diharapkan

Laporan dapat dibaca orang lain tanpa harus menebak apa yang kamu lakukan.

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

Jika reproduksi gagal, catat versi dan kondisi. Jangan menaikkan severity agar terlihat penting.

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

Apa tujuan langkah reproduksi?

Buka pembahasan

Memungkinkan pemeriksa memverifikasi temuan.

Tantangan mandiri

Ubah kalimat “server berbahaya” menjadi temuan spesifik yang dapat diperiksa.

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 kanal pelaporan yang disepakati dan jangan mempublikasikan detail target tanpa izin.

Referensi

F19 / BELAJAR DAN MENCOBA

Mini-lab HTTP

30–50 menit · Prasyarat: F18

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Kita akan membandingkan tiga keadaan: server menjawab normal, halaman tidak ada, dan server mati. Ketiganya berbeda. Angka 404 berarti server menjawab tetapi tidak menemukan halaman yang diminta.

Bayangkan seperti ini

Penjaga menjawab “ruangan tidak ada” berbeda dengan tidak ada orang yang menjawab sama sekali.

Arti kata yang mungkin baru

server
program yang menerima permintaan lalu memberi jawaban
Penjelasan tambahan jika kamu ingin tahu lebih jauh

Mini-lab menguji pengamatan, bukan eksploitasi. Endpoint /health mengembalikan JSON tetap. 404 berarti aplikasi aktif tetapi path tidak ada. Koneksi gagal berada pada tahap berbeda. Ketiga hasil ini membantu membedakan masalah aplikasi, routing, dan ketersediaan layanan.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

Jalankan lab hanya jika langkah latihan memintanya. Untuk lab dasar: python server_aman.py, lalu buka http://127.0.0.1:8000/. Untuk latihan menggambar atau membaca file, server tidak diperlukan.

Langkah latihan

  1. Jalankan server_aman.py.
  2. Buka /health dan catat 200 serta status ok.
  3. Buka /tidak-ada dan catat 404.
  4. Hentikan server dengan Ctrl+C.
  5. Buka lagi /health dan catat pesan gagal sambung.

Hasil yang diharapkan

Kamu memiliki tabel tiga keadaan dan penjelasan perbedaannya.

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

Jika curl tidak tersedia, DevTools cukup. Jika port sedang dipakai, cek apakah proses berasal dari lab Anda.

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 menguji server setelah dihentikan?

Buka pembahasan

Untuk membedakan respons aplikasi dan kegagalan koneksi.

Tantangan mandiri

Tuliskan apa yang belum dibuktikan oleh endpoint health yang sukses.

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

Health check harus cukup informatif untuk operasi tanpa membocorkan rahasia internal.

Referensi

F20 / LATIHAN MENYUSUN HASIL

Proyek akhir Fundamental

30–50 menit · Prasyarat: F19

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Proyek ini menggabungkan hal-hal yang sudah dipelajari. Tidak perlu melakukan serangan baru. Tujuannya menunjukkan bahwa kamu bisa bekerja sesuai izin dan menjelaskan hasil sendiri.

Bayangkan seperti ini

Seperti tugas akhir satu bab: gabungkan latihan kecil menjadi satu laporan yang rapi.

Arti kata yang mungkin baru

localhost
komputer atau perangkat yang sedang kamu pakai sendiri
server
program yang menerima permintaan lalu memberi jawaban
browser
aplikasi untuk membuka website
scope
batas target, cara, dan waktu yang boleh diuji
port
nomor layanan pada sebuah alamat komputer
Penjelasan tambahan jika kamu ingin tahu lebih jauh

Proyek akhir menggabungkan pengetahuan menjadi bukti yang dapat diaudit. Mengikuti instruksi sekali tidak sama dengan menguasai materi. Gunakan proses bersih dan catat penyimpangan. Penilaian mandiri mengukur hasil kursus, bukan lisensi profesional.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

Pelajaran ini tidak meminta kamu menjalankan server lab. Siapkan aplikasi atau file yang disebut pada langkah latihan di bawah.

Langkah latihan

  1. Buat laporan baru dan tulis scope localhost.
  2. Tambahkan gambar browser, komputer sendiri, dan server.
  3. Lampirkan pengamatan HTTP serta satu port Nmap.
  4. Jalankan ulang percobaan dari awal untuk memeriksa hasil.
  5. Nilai lima bagian memakai rubrik. Masing-masing 0–2, target 8 dari 10.

Hasil yang diharapkan

Lima bagian dinilai dari bukti. Nilai ini untuk belajar mandiri, bukan sertifikat.

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

Jika Nmap tidak dapat dipasang, tandai komponen belum dinilai; jangan mengklaim nilai penuh.

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

Apakah menyelesaikan draf berarti kompeten untuk semua target?

Buka pembahasan

Tidak; keterampilan perlu praktik dan validasi lebih lanjut.

Tantangan mandiri

Presentasikan laporan dalam tiga menit dan jawab apa batas kesimpulannya.

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

Ulangi bagian yang lemah sebelum masuk Web. Simpan bukti dan jadwalkan penghapusan.

Referensi

WEB01 / BELAJAR DAN MENCOBA

Browser dan server

30–50 menit · Prasyarat: F20

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Browser adalah aplikasi pembuka website. Server adalah program yang menjawab permintaan browser. Browser bisa menampilkan hasilnya menjadi tulisan, tombol, dan gambar. Keduanya bisa berada di komputer yang sama.

Bayangkan seperti ini

Seperti memesan makanan: browser mengirim pesanan dan server menyiapkan jawaban.

Arti kata yang mungkin baru

server
program yang menerima permintaan lalu memberi jawaban
browser
aplikasi untuk membuka website
HTTP
aturan bertukar pesan antara klien dan server web
Penjelasan tambahan jika kamu ingin tahu lebih jauh

Browser mengirim request dan memproses HTML, CSS, serta JavaScript. Server dapat mengirim file statis atau membentuk respons dinamis. DevTools Elements menampilkan DOM yang dapat berubah, sedangkan View Source menampilkan sumber respons awal.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

Jalankan lab hanya jika langkah latihan memintanya. Untuk lab dasar: python server_aman.py, lalu buka http://127.0.0.1:8000/. Untuk latihan menggambar atau membaca file, server tidak diperlukan.

Langkah latihan

  1. Jalankan server aman.
  2. Buka http://127.0.0.1:8000/.
  3. Lihat sumber halaman dengan View Source dari menu browser.
  4. Lihat tampilan biasa dan bandingkan dengan tulisan HTML.
  5. Gambar alur browser meminta, server menjawab, browser menampilkan.

Hasil yang diharapkan

Kamu dapat menjelaskan alur website dengan tiga langkah.

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

Jika Elements tidak tersedia pada ponsel, gunakan desktop untuk praktik ini; bacaan tetap bisa diakses ponsel.

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

Apakah browser dan server harus pada komputer berbeda?

Buka pembahasan

Tidak; keduanya dapat berjalan lokal.

Tantangan mandiri

Bedakan respons jaringan dengan DOM hasil modifikasi.

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

Jangan percaya kontrol browser sebagai kontrol akses server.

Referensi

WEB02 / BELAJAR DAN MENCOBA

HTML, CSS, JavaScript

30–50 menit · Prasyarat: WEB01

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

HTML mengatur isi dan susunan halaman. CSS mengatur tampilannya. JavaScript membuat halaman merespons tindakan, misalnya tombol ditekan. File yang dikirim ke browser dapat dibaca pengguna.

Bayangkan seperti ini

HTML seperti susunan rumah, CSS seperti cat dan dekorasi, JavaScript seperti tombol yang menyalakan lampu.

Arti kata yang mungkin baru

browser
aplikasi untuk membuka website
Penjelasan tambahan jika kamu ingin tahu lebih jauh

HTML memberi struktur, CSS memberi presentasi, dan JavaScript memberi perilaku. Sumber yang dikirim ke browser dapat dibaca pengguna. Menaruh password atau API secret dalam JavaScript publik berarti membagikannya ke setiap pengunjung.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

Pelajaran ini tidak meminta kamu menjalankan server lab. Siapkan aplikasi atau file yang disebut pada langkah latihan di bawah.

Langkah latihan

  1. Buat folder latihan baru.
  2. Salin contoh halaman di bawah ke file latihan.html.
  3. Buka file itu dengan browser.
  4. Tekan tombol Ubah teks dan perhatikan tulisan.
  5. Ubah satu tulisan pada file, simpan, lalu muat ulang browser.

Hasil yang diharapkan

Kamu melihat perbedaan mengubah file dan menekan tombol pada halaman.

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

Jika tidak berubah, pastikan membuka folder salinan dan reload tanpa cache. Jangan ubah paket publik asli tanpa backup.

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

Apa peran CSS?

Buka pembahasan

Mengatur presentasi halaman.

Tantangan mandiri

Buat tombol sederhana dengan event listener yang mengganti teks lewat textContent.

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

Simpan secret hanya di layanan yang sesuai; website statis ini tidak memerlukannya.

Referensi

WEB03 / BELAJAR DAN MENCOBA

URL dan origin

30–50 menit · Prasyarat: WEB02

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

URL adalah alamat halaman. Bagian awal menunjukkan jenis sambungan, lalu alamat komputer, nomor port, dan nama halaman. Tanda tanya memulai parameter tambahan. Bagian setelah # dipakai browser untuk menuju bagian halaman.

Bayangkan seperti ini

Seperti alamat yang berisi kota, jalan, nomor rumah, dan petunjuk tambahan.

Arti kata yang mungkin baru

browser
aplikasi untuk membuka website
request
pesan permintaan dari browser atau alat
parameter
nama dan nilai tambahan pada permintaan, seperti id=1
port
nomor layanan pada sebuah alamat komputer
HTTP
aturan bertukar pesan antara klien dan server web
Penjelasan tambahan jika kamu ingin tahu lebih jauh

Origin adalah kombinasi scheme, host dan port. Path atau query berbeda tidak mengubah origin. Fragment diproses klien dan tidak termasuk request HTTP ke server. URL encoding mengubah representasi karakter; bukan enkripsi atau validasi keamanan.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

Jalankan lab hanya jika langkah latihan memintanya. Untuk lab dasar: python server_aman.py, lalu buka http://127.0.0.1:8000/. Untuk latihan menggambar atau membaca file, server tidak diperlukan.

Langkah latihan

  1. Tulis http://127.0.0.1:8000/health?demo=1#bagian.
  2. Tandai http, 127.0.0.1, 8000, /health, dan demo=1.
  3. Buka alamat itu saat lab hidup.
  4. Di Network, lihat bahwa #bagian tidak ikut dikirim pada request.
  5. Bandingkan port 8000 dan 8765 sebagai dua tujuan layanan berbeda.

Hasil yang diharapkan

Kamu dapat memecah sebuah URL menjadi bagian-bagian kecil.

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

Browser bisa menampilkan URL yang sudah didekodekan. Gunakan detail request, bukan hanya address bar.

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

Apakah port termasuk identitas origin?

Buka pembahasan

Ya; origin terdiri atas scheme, host, dan port.

Tantangan mandiri

Apakah /a dan /b pada host/port yang sama berbeda origin? Jelaskan.

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

Validasi tujuan URL dengan parser yang sesuai, bukan pencocokan substring.

Referensi

WEB04 / BELAJAR DAN MENCOBA

Request dan response

30–50 menit · Prasyarat: WEB03

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Request adalah pesan permintaan. Response adalah jawabannya. GET berarti meminta data. Angka 200 biasanya menunjukkan permintaan berhasil diproses; angka 404 menunjukkan halaman yang dicari tidak ditemukan. Isi jawabannya tetap perlu dibaca.

Bayangkan seperti ini

Seperti bertanya kepada penjaga perpustakaan lalu menerima jawabannya.

Arti kata yang mungkin baru

browser
aplikasi untuk membuka website
request
pesan permintaan dari browser atau alat
response
pesan jawaban dari server
DevTools
alat bawaan browser untuk melihat halaman dan pesan jaringan
Penjelasan tambahan jika kamu ingin tahu lebih jauh

Request memuat method, target, header, dan kadang body. Respons memuat status, header, serta body opsional. GET sebaiknya tidak mengubah state. Status adalah kontrak aplikasi; 200 dengan pesan error tetap perlu dibaca, sedangkan 500 tidak otomatis bukti eksploitasi.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

Jalankan lab hanya jika langkah latihan memintanya. Untuk lab dasar: python server_aman.py, lalu buka http://127.0.0.1:8000/. Untuk latihan menggambar atau membaca file, server tidak diperlukan.

Langkah latihan

  1. Buka DevTools lewat menu browser, lalu Network.
  2. Muat /health.
  3. Klik request itu dan lihat method, status, dan isi jawaban.
  4. Ulangi dengan /tidak-ada.
  5. Tulis beda 200 dan 404 pada lab.

Hasil yang diharapkan

Kamu membaca permintaan dan jawaban, bukan hanya melihat tampilan halaman.

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

Jika log kosong, buka DevTools sebelum reload. Gunakan tab Network bukan Console untuk body HTTP.

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

Apakah 404 berarti jaringan terputus?

Buka pembahasan

Tidak; server menjawab bahwa sumber tidak ditemukan.

Tantangan mandiri

Mengapa kode 200 saja tidak cukup sebagai uji fungsi?

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 status dan format respons yang konsisten, serta error tanpa detail internal.

Referensi

WEB05 / BELAJAR DAN MENCOBA

Arsitektur dan batas percaya

30–50 menit · Prasyarat: WEB04

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Data dari browser bisa diubah oleh pengguna. Karena itu, aplikasi yang menyimpan data perlu memeriksa aturan di server. Menyembunyikan tombol tidak cukup untuk menjaga data.

Bayangkan seperti ini

Pintu ruang guru tetap perlu dikunci meskipun papan petunjuk menuju ruang itu disembunyikan.

Arti kata yang mungkin baru

server
program yang menerima permintaan lalu memberi jawaban
browser
aplikasi untuk membuka website
Penjelasan tambahan jika kamu ingin tahu lebih jauh

Aplikasi dinamis umumnya memisahkan presentasi, aturan bisnis, dan penyimpanan. Batas kepercayaan muncul saat data dari satu komponen dipakai komponen lain. Data yang berasal dari browser selalu dapat dimodifikasi, termasuk field tersembunyi dan JavaScript.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

Pelajaran ini tidak meminta kamu menjalankan server lab. Siapkan aplikasi atau file yang disebut pada langkah latihan di bawah.

Langkah latihan

  1. Gambar browser, server, dan tempat penyimpanan data.
  2. Tandai bagian yang dikendalikan pengguna, yaitu browser.
  3. Tulis bahwa identitas dan hak akses harus diperiksa server.
  4. Bandingkan dengan CyberKit publik yang hanya mengirim file bacaan.
  5. Tulis alasan tombol tersembunyi bukan pengganti pemeriksaan server.

Hasil yang diharapkan

Kamu tahu bagian yang boleh dipercaya dan bagian yang harus diperiksa lagi.

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

Diagram bersifat model; jangan menganggap semua website memakai arsitektur identik.

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

Bisakah validasi JavaScript menggantikan validasi server?

Buka pembahasan

Tidak; klien dapat dimodifikasi.

Tantangan mandiri

Mengapa tombol admin yang disembunyikan bukan batas keamanan?

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

Validasi input, autentikasi, dan otorisasi dilakukan pada komponen yang dipercaya.

Referensi

WEB06 / BELAJAR DAN MENCOBA

DevTools untuk observasi

30–50 menit · Prasyarat: WEB05

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

DevTools adalah alat bawaan browser untuk melihat halaman dan pesan jaringan. Mengubah tampilan melalui alat ini biasanya hanya mengubah browsermu, bukan file di server. Jangan menempel kode asing ke Console.

Bayangkan seperti ini

Seperti membuka kaca penutup mesin agar bisa mengamati, bukan otomatis mengubah pabrik pembuatnya.

Arti kata yang mungkin baru

server
program yang menerima permintaan lalu memberi jawaban
browser
aplikasi untuk membuka website
DevTools
alat bawaan browser untuk melihat halaman dan pesan jaringan
Penjelasan tambahan jika kamu ingin tahu lebih jauh

DevTools membantu inspeksi tanpa mengganti aplikasi server. Network menunjukkan request, Elements menunjukkan DOM, Console menjalankan JavaScript dalam origin halaman, dan Application/Storage memperlihatkan penyimpanan. Menempel kode asing di Console dapat membahayakan akun pada origin tersebut.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

Pelajaran ini tidak meminta kamu menjalankan server lab. Siapkan aplikasi atau file yang disebut pada langkah latihan di bawah.

Langkah latihan

  1. Buka CyberKit dan alat pengembang browser.
  2. Lihat Network untuk mencari style.css.
  3. Lihat Elements atau Inspector dan ubah satu tulisan sementara.
  4. Muat ulang halaman dan lihat tulisan kembali.
  5. Lihat penyimpanan progres hanya pada browser sendiri.

Hasil yang diharapkan

Kamu bisa membedakan file sumber, tampilan sementara, dan data yang disimpan browser.

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

Jangan paste skrip dari pihak lain atau menonaktifkan peringatan paste browser.

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

Apakah edit Elements mengubah file server?

Buka pembahasan

Tidak.

Tantangan mandiri

Bedakan perubahan file sumber, DOM, dan localStorage.

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 profil latihan terpisah dan kosongkan data latihan bila selesai.

Referensi

WEB07 / BELAJAR DAN MENCOBA

Header HTTP

30–50 menit · Prasyarat: WEB06

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Header adalah keterangan tambahan pada pesan HTTP. Content-Type memberi tahu jenis isi jawaban, misalnya JSON. Memasang header yang baik membantu browser, tetapi tidak memperbaiki semua kesalahan program.

Bayangkan seperti ini

Seperti label pada paket: label memberi petunjuk tentang isinya, tetapi tidak menjamin isi paket selalu benar.

Arti kata yang mungkin baru

server
program yang menerima permintaan lalu memberi jawaban
browser
aplikasi untuk membuka website
request
pesan permintaan dari browser atau alat
header
keterangan tambahan pada pesan HTTP
HTTP
aturan bertukar pesan antara klien dan server web
Penjelasan tambahan jika kamu ingin tahu lebih jauh

Header adalah metadata, bukan jaminan keamanan dengan sendirinya. Content-Type membantu interpretasi body; X-Content-Type-Options: nosniff membatasi sniffing tertentu. Header keamanan tidak menggantikan perbaikan aplikasi dan bisa tidak terlihat pada file:// karena tidak ada HTTP server.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

Jalankan lab hanya jika langkah latihan memintanya. Untuk lab dasar: python server_aman.py, lalu buka http://127.0.0.1:8000/. Untuk latihan menggambar atau membaca file, server tidak diperlukan.

Langkah latihan

  1. Jalankan server aman dan buka /health.
  2. Pada Network, pilih request /health.
  3. Cari Content-Type dan catat application/json.
  4. Cari Content-Length dan X-Content-Type-Options bila terlihat.
  5. Baca isi jawaban dan cocokkan dengan jenisnya.

Hasil yang diharapkan

Kamu dapat menyebut dua header dan kegunaannya dengan bahasa sendiri.

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

Jika memeriksa website via file://, pindah ke lab HTTP agar header dapat diamati.

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

Apa fungsi Content-Type?

Buka pembahasan

Menjelaskan format representasi respons.

Tantangan mandiri

Apa akibat data JSON dikirim dengan format atau tipe yang tidak sesuai?

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 tipe konten benar dan kebijakan browser yang sesuai kebutuhan aplikasi.

Referensi

WEB08 / BELAJAR DAN MENCOBA

Cookie dan session

30–50 menit · Prasyarat: WEB07

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Cookie dan localStorage sama-sama berhubungan dengan data browser, tetapi cara kerjanya berbeda. Cookie dapat ikut dikirim pada request yang sesuai. localStorage tidak otomatis dikirim. CyberKit menyimpan progres di localStorage, bukan akun server.

Bayangkan seperti ini

Catatan di saku tidak otomatis dibawa petugas ke kantor; ada aturan berbeda untuk mengirim dan menyimpan.

Arti kata yang mungkin baru

server
program yang menerima permintaan lalu memberi jawaban
browser
aplikasi untuk membuka website
request
pesan permintaan dari browser atau alat
Penjelasan tambahan jika kamu ingin tahu lebih jauh

Cookie dapat dikirim browser pada request yang cocok; session server menghubungkan token dengan state. localStorage tidak otomatis menjadi header HTTP dan dapat dibaca JavaScript origin. HttpOnly membatasi akses script ke cookie; Secure membatasi pengiriman pada HTTPS sesuai perilaku browser.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

Pelajaran ini tidak meminta kamu menjalankan server lab. Siapkan aplikasi atau file yang disebut pada langkah latihan di bawah.

Langkah latihan

  1. Tandai satu pelajaran selesai.
  2. Muat ulang dan periksa tandanya.
  3. Buka penyimpanan browser jika alatnya tersedia.
  4. Cari cyberkit-progress.
  5. Jelaskan mengapa progres di browser lain tidak otomatis sama.

Hasil yang diharapkan

Kamu memahami mengapa progres ini milik browser, bukan akun online.

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

Mode privat atau file:// bisa membatasi persistensi. Catat kegagalan penyimpanan, jangan klaim sinkronisasi.

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

Apakah localStorage otomatis dikirim pada setiap request?

Buka pembahasan

Tidak.

Tantangan mandiri

Jelaskan mengapa localStorage bukan tempat aman untuk secret jangka panjang.

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 cookie session dengan atribut sesuai dan perlindungan CSRF pada aplikasi autentikasi.

Referensi

WEB09 / BELAJAR DAN MENCOBA

Proxy lokal: Burp atau ZAP

30–50 menit · Prasyarat: WEB08

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Proxy latihan berada di tengah browser dan server agar pesan bisa diamati. Burp Community dan ZAP adalah pilihan alatnya. Cukup pilih satu. Latihan memakai HTTP localhost sehingga tidak perlu memasang sertifikat HTTPS.

Bayangkan seperti ini

Seperti meja pemeriksa yang memperlihatkan surat sebelum diteruskan.

Arti kata yang mungkin baru

localhost
komputer atau perangkat yang sedang kamu pakai sendiri
server
program yang menerima permintaan lalu memberi jawaban
browser
aplikasi untuk membuka website
request
pesan permintaan dari browser atau alat
HTTP
aturan bertukar pesan antara klien dan server web
Penjelasan tambahan jika kamu ingin tahu lebih jauh

Proxy inspeksi berdiri di antara browser latihan dan server. Ia menampilkan request agar parameter dapat dibandingkan. Intercept yang menyala menahan request sampai diteruskan; halaman yang terus memuat belum tentu server rusak. Burp Community cukup untuk proxy dan Repeater manual.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

Jalankan lab hanya jika langkah latihan memintanya. Untuk lab dasar: python server_aman.py, lalu buka http://127.0.0.1:8000/. Untuk latihan menggambar atau membaca file, server tidak diperlukan.

Langkah latihan

  1. Jalankan server aman.
  2. Buka Burp Community dan pilih proyek sementara.
  3. Gunakan Proxy lalu Open browser. Pastikan Intercept off agar pesan tidak tertahan.
  4. Pada browser bawaan, buka http://127.0.0.1:8000/health.
  5. Lihat HTTP history. Kirim satu request ke Repeater lalu Send untuk mengulanginya.

Hasil yang diharapkan

Pesan GET lokal dan jawabannya terlihat. Jangan memakai browser latihan untuk masuk akun pribadi.

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

Jika tidak terlihat, pastikan memakai browser bawaan proxy. ZAP dapat memakai browser yang diluncurkan dari antarmukanya. Jangan jalankan active scan.

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 browser khusus latihan?

Buka pembahasan

Menghindari tercampurnya trafik akun pribadi.

Tantangan mandiri

Ubah hanya path menjadi /tidak-ada di Repeater dan jelaskan 404.

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

Pisahkan profil latihan dari akun pribadi dan tutup proxy setelah selesai.

Referensi

WEB10 / LATIHAN MENYUSUN HASIL

Proyek observasi web

30–50 menit · Prasyarat: WEB09

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Sebelum mengubah sesuatu, catat keadaan normalnya. Keadaan awal itu disebut baseline. Mengubah satu bagian saja membuat penyebab perubahan lebih mudah dipahami.

Bayangkan seperti ini

Seperti percobaan tanaman: jika air dan cahaya diubah bersamaan, penyebab hasilnya lebih sulit diketahui.

Arti kata yang mungkin baru

server
program yang menerima permintaan lalu memberi jawaban
baseline
keadaan normal sebelum percobaan diubah
Penjelasan tambahan jika kamu ingin tahu lebih jauh

Baseline adalah perilaku normal sebelum perubahan. Mengubah satu variabel membantu menghubungkan sebab dan hasil. Observasi harus membedakan fakta respons dari dugaan implementasi. Proyek ini menutup pengantar sebelum modul kerentanan lokal.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

Jalankan lab hanya jika langkah latihan memintanya. Untuk lab dasar: python server_aman.py, lalu buka http://127.0.0.1:8000/. Untuk latihan menggambar atau membaca file, server tidak diperlukan.

Langkah latihan

  1. Jalankan server aman.
  2. Catat GET /health dan hasil 200.
  3. Ubah hanya nama halaman menjadi /tidak-ada.
  4. Catat 404.
  5. Kembali ke /health dan pastikan 200 lagi.

Hasil yang diharapkan

Kamu memiliki catatan awal, satu perubahan, dan pemeriksaan kembali.

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

Jika respons berbeda, periksa proses dan port. Jangan menyimpulkan bug dari satu error.

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

Apakah status 200 menjamin aplikasi aman?

Buka pembahasan

Tidak; itu hanya keberhasilan request menurut server.

Tantangan mandiri

Nilai sendiri scope, baseline, perubahan, pemulihan, dan laporan masing-masing 0–2.

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

Pertahankan cara uji satu variabel pada modul selanjutnya; nilai target minimal 8/10.

Referensi

WEB11 / BELAJAR DAN MENCOBA

Pemetaan permukaan lokal

30–50 menit · Prasyarat: WEB10

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Sebelum menguji, kenali fitur yang memang termasuk tempat latihan. Kita tidak perlu menebak alamat website lain. Lab sudah memberi daftar fitur yang boleh dicoba.

Bayangkan seperti ini

Seperti membaca peta ruang praktikum sebelum mulai bekerja.

Arti kata yang mungkin baru

parameter
nama dan nilai tambahan pada permintaan, seperti id=1
HTTP
aturan bertukar pesan antara klien dan server web
Python
bahasa dan alat untuk menjalankan program contoh
Penjelasan tambahan jika kamu ingin tahu lebih jauh

Pemetaan permukaan menemukan fitur dan batas input yang memang ada dalam scope. Recon bukan izin memperluas target. Dalam lab ini daftar rute sudah tersedia sehingga tidak perlu crawling atau brute force jaringan.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

  1. Unduh dan ekstrak ZIP lab dari halaman Perlengkapan ke komputer sendiri.
  2. Buka terminal di folder lab. Jalankan python lab_web.py --enable-local-training. Gunakan py atau python3 jika itu nama Python pada perangkatmu.
  3. Biarkan terminal tetap terbuka. Buka browser dan tulis http://127.0.0.1:8765/ pada bilah alamat di atas, lalu Enter.
  4. Jika langkah menyebut /note atau 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.
  5. Sesudah selesai, kembali ke terminal dan tekan Ctrl+C untuk menghentikan lab.

Langkah latihan

  1. Ekstrak ZIP lab di komputer sendiri.
  2. Jalankan python lab_web.py --enable-local-training.
  3. Buka http://127.0.0.1:8765/.
  4. Catat fitur /search, /echo, /note, /login, dan /api/profile.
  5. Tulis parameter yang terlihat pada masing-masing fitur.

Hasil yang diharapkan

Kamu memiliki peta lima fitur lab dan tetap bekerja pada localhost.

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

Jika server menolak start tanpa flag, tambahkan flag tepat; flag adalah persetujuan sadar menjalankan lab rentan lokal.

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

Apakah menemukan link ke host lain otomatis menambah scope?

Buka pembahasan

Tidak. Scope tetap dokumen izin; link tidak memberi hak menguji tujuan lain.

Tantangan mandiri

Pilih fitur paling sensitif dan jelaskan alasannya.

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

Inventaris endpoint dan pemilik kontrol membantu merencanakan pengujian serta perbaikan.

Referensi

WEB12 / BELAJAR DAN MENCOBA

Baseline dan pengujian terkontrol

30–50 menit · Prasyarat: WEB11

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Kita perlu tahu perbedaan hasil normal dan hasil yang tidak cocok. Daftar kosong tidak selalu berarti error. Pada pencarian, daftar kosong bisa berarti barang memang tidak ditemukan.

Bayangkan seperti ini

Mencari buku yang tidak ada di perpustakaan berbeda dengan perpustakaannya tutup.

Arti kata yang mungkin baru

fixed
mode lab yang memperbaiki kesalahan contoh
Penjelasan tambahan jika kamu ingin tahu lebih jauh

Perbedaan respons bukan otomatis kerentanan. Baseline menegaskan perilaku normal, kontrol negatif memeriksa penolakan, dan pengulangan memastikan perubahan konsisten. Hasil harus dibandingkan pada data dan mode yang sama.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

  1. Unduh dan ekstrak ZIP lab dari halaman Perlengkapan ke komputer sendiri.
  2. Buka terminal di folder lab. Jalankan python lab_web.py --enable-local-training. Gunakan py atau python3 jika itu nama Python pada perangkatmu.
  3. Biarkan terminal tetap terbuka. Buka browser dan tulis http://127.0.0.1:8765/ pada bilah alamat di atas, lalu Enter.
  4. Jika langkah menyebut /note atau 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.
  5. Sesudah selesai, kembali ke terminal dan tekan Ctrl+C untuk menghentikan lab.

Langkah latihan

  1. Buka /search?mode=fixed&q=apel pada lab 8765.
  2. Catat satu barang bernama apel.
  3. Ganti q menjadi zzzlatihan.
  4. Catat daftar kosong.
  5. Kembalikan q=apel dan pastikan hasil normal muncul lagi.

Hasil yang diharapkan

Kamu tahu bahwa hasil kosong dapat merupakan jawaban yang benar.

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

Jangan membandingkan mode berbeda sebagai satu variabel. Query bisa di-encode browser secara otomatis.

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 mengembalikan input baseline setelah percobaan penting?

Buka pembahasan

Untuk memastikan layanan tetap berperilaku normal dan perubahan hasil bukan akibat kondisi proses lain.

Tantangan mandiri

Mengapa status 200 pada daftar kosong bukan kegagalan kontrol?

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

Buat pengujian regresi untuk input normal, tidak cocok, dan karakter khusus.

Referensi

WEB13 / BELAJAR DAN MENCOBA

curl dan reproduksi request

30–50 menit · Prasyarat: WEB12

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

curl adalah alat untuk meminta halaman lewat terminal. Ini membantu menulis langkah yang bisa diulang. URL yang mempunyai tanda khusus perlu diberi tanda kutip.

Bayangkan seperti ini

Seperti mengirim pesanan tertulis yang sama berulang kali agar mudah dibandingkan.

Arti kata yang mungkin baru

browser
aplikasi untuk membuka website
HTTP
aturan bertukar pesan antara klien dan server web
Penjelasan tambahan jika kamu ingin tahu lebih jauh

curl mengirim HTTP tanpa UI sehingga request dapat direproduksi. Shell juga menginterpretasikan karakter, maka URL harus diberi tanda kutip. curl.exe pada PowerShell menghindari alias pada instalasi tertentu.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

  1. Unduh dan ekstrak ZIP lab dari halaman Perlengkapan ke komputer sendiri.
  2. Buka terminal di folder lab. Jalankan python lab_web.py --enable-local-training. Gunakan py atau python3 jika itu nama Python pada perangkatmu.
  3. Biarkan terminal tetap terbuka. Buka browser dan tulis http://127.0.0.1:8765/ pada bilah alamat di atas, lalu Enter.
  4. Jika langkah menyebut /note atau 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.
  5. Sesudah selesai, kembali ke terminal dan tekan Ctrl+C untuk menghentikan lab.

Langkah latihan

  1. Pastikan lab 8765 hidup.
  2. Windows: ketik curl.exe -i "http://127.0.0.1:8765/health". Linux: gunakan curl dengan bagian lain sama.
  3. Baca baris status dan isi jawaban.
  4. Bandingkan dengan /health di browser.
  5. Jika curl tidak tersedia, gunakan Network pada browser dan catat alat yang dipakai.

Hasil yang diharapkan

Isi health sama-sama menunjukkan status ok, meskipun tampilan terminal berbeda dari browser.

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

Jika curl tidak ada, gunakan browser/DevTools. Jangan memasang paket acak untuk satu langkah.

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 memakai --data-urlencode untuk query yang mengandung spasi?

Buka pembahasan

Agar nilai dikirim sebagai komponen parameter dengan encoding yang tepat; shell dan HTTP mempunyai aturan berbeda.

Tantangan mandiri

Buat request dengan q=dua kata memakai --data-urlencode dan jelaskan encoding.

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

Simpan contoh request minimal dan sensor header autentikasi pada laporan.

Referensi

WEB14 / BELAJAR DAN MENCOBA

Validasi input dan batas data

30–50 menit · Prasyarat: WEB13

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Program perlu memeriksa bentuk data yang masuk. Nomor objek seharusnya berupa angka. Angka yang benar bentuknya belum tentu menunjuk objek yang ada atau boleh diakses.

Bayangkan seperti ini

Nomor kelas harus masuk akal, tetapi nomor yang benar belum memberi izin masuk kelas orang lain.

Arti kata yang mungkin baru

fixed
mode lab yang memperbaiki kesalahan contoh
Penjelasan tambahan jika kamu ingin tahu lebih jauh

Validasi menentukan nilai yang dapat diterima; encoding menentukan bagaimana nilai ditampilkan; parameterisasi menentukan bagaimana nilai digunakan dalam query. Ketiganya bekerja pada masalah berbeda. Menghapus tanda kutip dari input bukan solusi umum.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

  1. Unduh dan ekstrak ZIP lab dari halaman Perlengkapan ke komputer sendiri.
  2. Buka terminal di folder lab. Jalankan python lab_web.py --enable-local-training. Gunakan py atau python3 jika itu nama Python pada perangkatmu.
  3. Biarkan terminal tetap terbuka. Buka browser dan tulis http://127.0.0.1:8765/ pada bilah alamat di atas, lalu Enter.
  4. Jika langkah menyebut /note atau 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.
  5. Sesudah selesai, kembali ke terminal dan tekan Ctrl+C untuk menghentikan lab.

Langkah latihan

  1. Buka /api/profile?mode=fixed&id=1.
  2. Coba id=abc untuk bentuk yang salah.
  3. Coba id=999 untuk objek yang tidak ada.
  4. Catat status dan pesan setiap percobaan.
  5. Buat tiga baris: benar, salah bentuk, tidak ditemukan.

Hasil yang diharapkan

Kamu membedakan bentuk input, keberadaan objek, dan izin akses.

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

Jangan menyimpulkan semua aplikasi harus memakai kode status persis sama; yang dinilai adalah kontrak dan kontrol lab.

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

Apa beda validasi input dengan parameterisasi SQL?

Buka pembahasan

Validasi memeriksa nilai yang boleh diterima; parameterisasi memisahkan nilai dari struktur SQL pada sink. Keduanya mempunyai tujuan berbeda.

Tantangan mandiri

Mengapa filter input saja tidak menggantikan parameter SQL?

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

Terapkan batas panjang, tipe dan nilai yang masuk akal disertai kontrol pada sink.

Referensi

WEB15 / BELAJAR DAN MENCOBA

Catatan dan reproduksibilitas tools

30–50 menit · Prasyarat: WEB14

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Nama alat, versi, dan kondisi percobaan membantu orang lain mengulangi hasil. Pesan peringatan dari alat adalah petunjuk untuk diperiksa, bukan otomatis bukti masalah.

Bayangkan seperti ini

Hasil pengukuran lebih berguna jika kita tahu alat dan cara mengukurnya.

Arti kata yang mungkin baru

browser
aplikasi untuk membuka website
proxy
perantara untuk mengamati pesan antara browser dan server
Python
bahasa dan alat untuk menjalankan program contoh
Penjelasan tambahan jika kamu ingin tahu lebih jauh

Alat dapat mengubah hasil melalui konfigurasi proxy, cache, encoding dan versi. Catatan pengujian perlu cukup rinci agar pemeriksa dapat mengulang. Output scanner bukan temuan final sampai divalidasi dan dampaknya dijelaskan.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

  1. Unduh dan ekstrak ZIP lab dari halaman Perlengkapan ke komputer sendiri.
  2. Buka terminal di folder lab. Jalankan python lab_web.py --enable-local-training. Gunakan py atau python3 jika itu nama Python pada perangkatmu.
  3. Biarkan terminal tetap terbuka. Buka browser dan tulis http://127.0.0.1:8765/ pada bilah alamat di atas, lalu Enter.
  4. Jika langkah menyebut /note atau 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.
  5. Sesudah selesai, kembali ke terminal dan tekan Ctrl+C untuk menghentikan lab.

Langkah latihan

  1. Catat versi Python dan browser.
  2. Minta /health lewat browser.
  3. Ulangi lewat curl atau proxy bila tersedia.
  4. Bandingkan alamat dan isi jawabannya.
  5. Tulis alat mana yang benar-benar berhasil kamu gunakan.

Hasil yang diharapkan

Laporan menyebut alat dan hasil nyata, bukan hanya menyalin peringatan alat.

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

Jika proxy mengubah hasil, ulangi tanpa proxy dan catat kedua kondisi; jangan menutupinya.

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

Apakah alert otomatis dari alat sudah cukup menjadi temuan?

Buka pembahasan

Belum. Konfirmasikan request, respons, kondisi, dampak dan batas pengujian.

Tantangan mandiri

Buat checklist sebelum mengakui alert sebagai temuan.

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

Pertahankan versi lab dan request minimal, serta lakukan retest dari proses bersih.

Referensi

WEB16 / BELAJAR DAN MENCOBA

SQL Injection: akar masalah

30–50 menit · Prasyarat: WEB15

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

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.

  1. Unduh dan ekstrak ZIP lab dari halaman Perlengkapan ke komputer sendiri.
  2. Buka terminal di folder lab. Jalankan python lab_web.py --enable-local-training. Gunakan py atau python3 jika itu nama Python pada perangkatmu.
  3. Biarkan terminal tetap terbuka. Buka browser dan tulis http://127.0.0.1:8765/ pada bilah alamat di atas, lalu Enter.
  4. Jika langkah menyebut /note atau 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.
  5. Sesudah selesai, kembali ke terminal dan tekan Ctrl+C untuk menghentikan lab.

Langkah latihan

  1. Pastikan lab 8765 hidup.
  2. Buka /search dan pilih vulnerable.
  3. Cari apel sebagai percobaan normal.
  4. Cari satu tanda kutip biasa: '. Catat pesan yang muncul.
  5. Pilih fixed, kirim tanda kutip sama, dan bandingkan.
  6. 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.

Referensi

WEB17 / BELAJAR DAN MENCOBA

SQLi: bukti minimal dan retest

30–50 menit · Prasyarat: WEB16

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Kita akan melihat kesalahan pencarian pada tiga barang buatan dalam lab. Tujuannya membuktikan perbedaan cara program membaca input, bukan mengambil data orang lain.

Bayangkan seperti ini

Tulisan yang seharusnya menjadi kata pencarian malah mengubah aturan pencariannya.

Arti kata yang mungkin baru

fixed
mode lab yang memperbaiki kesalahan contoh
vulnerable
mode lab yang sengaja dibuat memiliki kesalahan untuk latihan
Penjelasan tambahan jika kamu ingin tahu lebih jauh

Bukti minimal menunjukkan perubahan logika tanpa merusak atau mengambil data nyata. Kondisi selalu benar di lab dapat mengubah pencarian satu produk menjadi semua produk. Teknik ini hanya dipakai pada database memori fiktif yang diberikan.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

  1. Unduh dan ekstrak ZIP lab dari halaman Perlengkapan ke komputer sendiri.
  2. Buka terminal di folder lab. Jalankan python lab_web.py --enable-local-training. Gunakan py atau python3 jika itu nama Python pada perangkatmu.
  3. Biarkan terminal tetap terbuka. Buka browser dan tulis http://127.0.0.1:8765/ pada bilah alamat di atas, lalu Enter.
  4. Jika langkah menyebut /note atau 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.
  5. Sesudah selesai, kembali ke terminal dan tekan Ctrl+C untuk menghentikan lab.

Langkah latihan

  1. Di /search vulnerable cari apel dan catat satu hasil.
  2. Isi kotak q dengan: ' OR 1=1 -- lalu kirim.
  3. Catat tiga barang buatan yang muncul.
  4. Ganti mode ke fixed dan kirim input sama.
  5. Cari apel lagi pada fixed untuk memastikan pencarian normal tetap bekerja.

Hasil yang diharapkan

Input contoh membuat vulnerable menampilkan tiga barang. Pada fixed input itu tidak menemukan barang, sedangkan apel tetap bisa dicari.

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

Jika hasil tidak sesuai, periksa tanda kutip ASCII dan mode. Jangan mencoba payload lanjutan atau target lain.

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

Apa bukti minimal perubahan logika pada pencarian lab?

Buka pembahasan

Input apel memberi satu hasil; kondisi selalu benar pada vulnerable memberi tiga produk; string sama pada fixed memberi daftar kosong, sementara apel tetap bekerja.

Tantangan mandiri

Susun temuan dengan baseline, perubahan, dampak lokal, akar masalah, dan retest.

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

Verifikasi parameterisasi tidak merusak pencarian normal maupun karakter khusus.

Referensi

WEB18 / BELAJAR DAN MENCOBA

XSS: teks menjadi markup

30–50 menit · Prasyarat: WEB17

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Browser dapat membaca teks sebagai bagian HTML. Jika tulisan pengguna dimasukkan tanpa aturan yang tepat, pengguna dapat mengubah susunan halaman. Menampilkan tulisan sebagai teks biasa berbeda dari membacanya sebagai tag.

Bayangkan seperti ini

Tulisan “buat judul besar” pada buku tamu seharusnya tetap menjadi tulisan, bukan perintah mengubah papan sekolah.

Arti kata yang mungkin baru

browser
aplikasi untuk membuka website
fixed
mode lab yang memperbaiki kesalahan contoh
vulnerable
mode lab yang sengaja dibuat memiliki kesalahan untuk latihan
Penjelasan tambahan jika kamu ingin tahu lebih jauh

XSS terjadi ketika input tidak tepercaya ditafsirkan browser sebagai kode atau markup aktif. Lab /echo menaruh q pada konteks teks HTML. Encoding yang benar pada konteks ini mengubah karakter khusus menjadi teks; konteks JavaScript atau URL memerlukan kontrol berbeda.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

  1. Unduh dan ekstrak ZIP lab dari halaman Perlengkapan ke komputer sendiri.
  2. Buka terminal di folder lab. Jalankan python lab_web.py --enable-local-training. Gunakan py atau python3 jika itu nama Python pada perangkatmu.
  3. Biarkan terminal tetap terbuka. Buka browser dan tulis http://127.0.0.1:8765/ pada bilah alamat di atas, lalu Enter.
  4. Jika langkah menyebut /note atau 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.
  5. Sesudah selesai, kembali ke terminal dan tekan Ctrl+C untuk menghentikan lab.

Langkah latihan

  1. Buka /echo pada lab 8765.
  2. Pilih vulnerable dan kirim Halo.
  3. Kirim <b>latihan</b> dan lihat tulisan tebal.
  4. Pilih fixed dan kirim input sama.
  5. Bandingkan tampilan serta sumber halaman.

Hasil yang diharapkan

Vulnerable membentuk tulisan tebal. Fixed menampilkan tanda <b> sebagai teks. Ini menunjukkan perubahan HTML, bukan bukti skrip berjalan.

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

Markup tebal membuktikan HTML injection, belum eksekusi JavaScript. Pembuktian XSS dilakukan pada pelajaran berikutnya.

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

Apakah teks tebal dari input <b> sudah membuktikan JavaScript dieksekusi?

Buka pembahasan

Belum. Itu menunjukkan HTML injection; eksekusi skrip harus dibuktikan secara terpisah dan aman.

Tantangan mandiri

Jelaskan mengapa menghapus kata script tidak cukup.

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

Untuk teks HTML gunakan encoding konteks HTML atau textContent pada DOM.

Referensi

WEB19 / BELAJAR DAN MENCOBA

XSS: bukti lokal tanpa data sensitif

30–50 menit · Prasyarat: WEB18

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

XSS adalah keadaan ketika input pengguna dapat menjadi skrip yang berjalan di browser. Di lab, kita memakai contoh yang hanya mengubah judul tab sendiri. Tidak perlu membaca cookie atau mengirim data ke tempat lain.

Bayangkan seperti ini

Catatan tamu seharusnya tidak bisa menekan tombol pengatur papan pengumuman.

Arti kata yang mungkin baru

browser
aplikasi untuk membuka website
fixed
mode lab yang memperbaiki kesalahan contoh
vulnerable
mode lab yang sengaja dibuat memiliki kesalahan untuk latihan
Penjelasan tambahan jika kamu ingin tahu lebih jauh

Bukti XSS tidak perlu membaca cookie atau menghubungi server luar. Mengubah judul halaman sendiri sudah menunjukkan eksekusi skrip pada origin lab. Jangan menyalin payload ini ke halaman pihak lain.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

  1. Unduh dan ekstrak ZIP lab dari halaman Perlengkapan ke komputer sendiri.
  2. Buka terminal di folder lab. Jalankan python lab_web.py --enable-local-training. Gunakan py atau python3 jika itu nama Python pada perangkatmu.
  3. Biarkan terminal tetap terbuka. Buka browser dan tulis http://127.0.0.1:8765/ pada bilah alamat di atas, lalu Enter.
  4. Jika langkah menyebut /note atau 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.
  5. Sesudah selesai, kembali ke terminal dan tekan Ctrl+C untuk menghentikan lab.

Langkah latihan

  1. Buka /echo dan pilih vulnerable.
  2. Isi q dengan <script>document.title="Bukti lokal"</script>.
  3. Kirim dan lihat judul tab berubah menjadi Bukti lokal.
  4. Pilih fixed dan kirim input sama.
  5. Lihat judul tetap CyberKit Lab dan tulisan skrip muncul sebagai teks.

Hasil yang diharapkan

Ada perbedaan yang bisa dilihat: skrip berjalan pada vulnerable dan tidak berjalan pada fixed dalam contoh ini.

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

Jika ekstensi browser memblokir skrip, gunakan profil latihan tanpa akun dan catat pembatasan; jangan menonaktifkan proteksi perangkat secara global.

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

Apa perbedaan judul tab setelah input skrip pada kedua mode?

Buka pembahasan

Vulnerable berubah menjadi Bukti lokal. Fixed tetap CyberKit Lab karena karakter skrip di-encode dan ditampilkan sebagai teks.

Tantangan mandiri

Jelaskan batas bukti: yang diuji adalah satu konteks HTML pada satu endpoint lab.

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

Utamakan sink aman dan encoding; CSP membantu membatasi dampak tetapi bukan pengganti perbaikan sink.

Referensi

WEB20 / BELAJAR DAN MENCOBA

Review kode dan regresi injection

30–50 menit · Prasyarat: WEB19

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Perbaikan harus menghentikan contoh yang salah tanpa merusak penggunaan biasa. Karena itu, kita menguji kedua jenis input. Tes otomatis membantu memeriksa hasil, tetapi bukan pengganti semua pengamatan browser.

Bayangkan seperti ini

Memperbaiki kunci bukan berarti menutup pintu dengan semen; pemilik rumah tetap harus bisa masuk.

Arti kata yang mungkin baru

browser
aplikasi untuk membuka website
Python
bahasa dan alat untuk menjalankan program contoh
Penjelasan tambahan jika kamu ingin tahu lebih jauh

Perbaikan dinilai dari pemisahan data dan instruksi pada sink, lalu dibuktikan dengan pengujian positif dan negatif. Patch yang memblokir satu contoh saja dapat gagal pada input lain atau merusak penggunaan normal.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

  1. Unduh dan ekstrak ZIP lab dari halaman Perlengkapan ke komputer sendiri.
  2. Buka terminal di folder lab. Jalankan python lab_web.py --enable-local-training. Gunakan py atau python3 jika itu nama Python pada perangkatmu.
  3. Biarkan terminal tetap terbuka. Buka browser dan tulis http://127.0.0.1:8765/ pada bilah alamat di atas, lalu Enter.
  4. Jika langkah menyebut /note atau 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.
  5. Sesudah selesai, kembali ke terminal dan tekan Ctrl+C untuk menghentikan lab.

Langkah latihan

  1. Buka terminal di folder lab.
  2. Jalankan python test_lab.py.
  3. Baca hasil OK atau pesan kegagalan.
  4. Baca pengujian untuk pencarian normal dan input khusus.
  5. Ulangi satu percobaan melalui browser agar perbedaannya terlihat sendiri.

Hasil yang diharapkan

Tes fungsi lulus dan kamu memahami mengapa contoh normal tetap perlu diuji.

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

Unit test string HTML tidak mengeksekusi browser. Jangan mengklaim tes unit membuktikan seluruh perilaku browser.

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 uji serangan saja belum cukup untuk menilai patch?

Buka pembahasan

Patch bisa memblokir semua request sehingga fungsi normal rusak. Uji input normal dan kasus negatif tetap diperlukan.

Tantangan mandiri

Buat satu input normal berisi apostrof untuk regresi pencarian.

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

Uji sink dan fungsi normal setelah setiap perubahan; lakukan review konteks lain secara terpisah.

Referensi

WEB21 / BELAJAR DAN MENCOBA

IDOR: objek milik siapa

30–50 menit · Prasyarat: WEB20

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

IDOR terjadi ketika program memberi objek milik orang lain tanpa memeriksa izin. Di lab, kamu selalu berperan sebagai Alice. Mengganti nomor catatan tidak boleh membuatmu boleh membaca catatan Bob.

Bayangkan seperti ini

Mengetahui nomor loker teman tidak memberi izin membuka lokernya.

Arti kata yang mungkin baru

fixed
mode lab yang memperbaiki kesalahan contoh
vulnerable
mode lab yang sengaja dibuat memiliki kesalahan untuk latihan
Penjelasan tambahan jika kamu ingin tahu lebih jauh

IDOR adalah kegagalan memeriksa hak akses terhadap objek yang dirujuk pengguna. ID yang sulit ditebak hanya mengurangi penemuan, bukan memberi otorisasi. Lab menetapkan aktor Alice di sisi server, sehingga perubahan parameter id tidak boleh mengubah aktor.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

  1. Unduh dan ekstrak ZIP lab dari halaman Perlengkapan ke komputer sendiri.
  2. Buka terminal di folder lab. Jalankan python lab_web.py --enable-local-training. Gunakan py atau python3 jika itu nama Python pada perangkatmu.
  3. Biarkan terminal tetap terbuka. Buka browser dan tulis http://127.0.0.1:8765/ pada bilah alamat di atas, lalu Enter.
  4. Jika langkah menyebut /note atau 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.
  5. Sesudah selesai, kembali ke terminal dan tekan Ctrl+C untuk menghentikan lab.

Langkah latihan

  1. Buka /note?mode=vulnerable&id=1.
  2. Catat bahwa isinya milik Alice.
  3. Ganti hanya id=2 dan baca catatan Bob yang fiktif.
  4. Ulangi id=2 dengan mode=fixed.
  5. Bandingkan dengan fixed id=1 yang memang boleh dibaca.

Hasil yang diharapkan

Vulnerable membocorkan catatan Bob. Fixed menolak id=2 dengan 403 tetapi tetap mengizinkan id=1.

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

Jika id=999 hasilnya 404, itu objek tidak ada; bukan bukti kontrol kepemilikan.

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 mengganti id=1 menjadi id=2 tidak boleh mengubah identitas aktor?

Buka pembahasan

ID memilih objek, bukan identitas. Aktor harus berasal dari konteks tepercaya di server dan hak terhadap objek harus dicek.

Tantangan mandiri

Tulis dampak sebagai akses baca lintas pemilik pada data fiktif, tanpa klaim perubahan data.

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

Periksa hak aktor terhadap objek di server pada setiap operasi.

Referensi

WEB22 / BELAJAR DAN MENCOBA

Matriks kontrol akses

30–50 menit · Prasyarat: WEB21

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Tabel izin membantu kita melihat siapa boleh melakukan apa. Membaca dan mengubah adalah kegiatan berbeda. Lab ini hanya menyediakan membaca catatan, jadi hak mengubah cukup dirancang di kertas.

Bayangkan seperti ini

Daftar peminjam buku tidak sama dengan daftar orang yang boleh mengubah data perpustakaan.

Arti kata yang mungkin baru

fixed
mode lab yang memperbaiki kesalahan contoh
Penjelasan tambahan jika kamu ingin tahu lebih jauh

Matriks menghubungkan aktor, aksi dan objek. Hak membaca belum tentu hak mengubah. Pengujian perlu kasus boleh dan ditolak agar patch tidak sekadar memblokir semua akses. Lab hanya menyediakan operasi baca, sehingga hak tulis dinilai lewat desain, bukan exploit.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

  1. Unduh dan ekstrak ZIP lab dari halaman Perlengkapan ke komputer sendiri.
  2. Buka terminal di folder lab. Jalankan python lab_web.py --enable-local-training. Gunakan py atau python3 jika itu nama Python pada perangkatmu.
  3. Biarkan terminal tetap terbuka. Buka browser dan tulis http://127.0.0.1:8765/ pada bilah alamat di atas, lalu Enter.
  4. Jika langkah menyebut /note atau 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.
  5. Sesudah selesai, kembali ke terminal dan tekan Ctrl+C untuk menghentikan lab.

Langkah latihan

  1. Buat tabel dengan kolom orang, catatan, kegiatan, dan boleh/tidak.
  2. Isi Alice membaca catatan 1: boleh.
  3. Isi Alice membaca catatan 2: tidak.
  4. Coba kedua kasus pada mode fixed.
  5. Tambahkan id=999 dan catat bahwa objek itu tidak ada.

Hasil yang diharapkan

Tiga kasus membedakan akses sah, akses ditolak, dan objek tidak ditemukan.

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

Jangan memalsukan identitas dengan parameter actor; lab sengaja menetapkan satu aktor tepercaya.

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

Apa hasil tiga kasus fixed: id 1, 2 dan 999 untuk Alice?

Buka pembahasan

200 untuk catatan Alice, 403 untuk catatan Bob, dan 404 untuk objek tidak ada dalam kontrak lab.

Tantangan mandiri

Tambahkan aksi update/delete ke matriks secara konseptual.

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

Deny by default dan validasi hak pada setiap endpoint, bukan hanya halaman UI.

Referensi

WEB23 / BELAJAR DAN MENCOBA

Otorisasi pada server

30–50 menit · Prasyarat: WEB22

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Aturan izin harus diperiksa server, bukan hanya tombol pada layar. Orang bisa meminta alamat langsung tanpa menekan tombol. Pada lab, server membandingkan pemilik catatan dengan aktor Alice.

Bayangkan seperti ini

Pemeriksaan tiket dilakukan di pintu masuk, bukan hanya dengan menyembunyikan poster acara.

Arti kata yang mungkin baru

server
program yang menerima permintaan lalu memberi jawaban
fixed
mode lab yang memperbaiki kesalahan contoh
Penjelasan tambahan jika kamu ingin tahu lebih jauh

Menyembunyikan tombol atau memfilter daftar browser tidak menghalangi request langsung. Kontrol akses harus berada dekat operasi data. Dalam lab, lookup objek diikuti pemeriksaan owner; aplikasi nyata sebaiknya membatasi query sesuai aktor dan kebijakan yang jelas.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

  1. Unduh dan ekstrak ZIP lab dari halaman Perlengkapan ke komputer sendiri.
  2. Buka terminal di folder lab. Jalankan python lab_web.py --enable-local-training. Gunakan py atau python3 jika itu nama Python pada perangkatmu.
  3. Biarkan terminal tetap terbuka. Buka browser dan tulis http://127.0.0.1:8765/ pada bilah alamat di atas, lalu Enter.
  4. Jika langkah menyebut /note atau 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.
  5. Sesudah selesai, kembali ke terminal dan tekan Ctrl+C untuk menghentikan lab.

Langkah latihan

  1. Buka fungsi note pada lab_web.py.
  2. Cari pemeriksaan owner dan ACTOR pada mode fixed.
  3. Minta fixed id=1 langsung lewat address bar.
  4. Minta fixed id=2 dengan cara sama.
  5. Jelaskan mengapa pemeriksaan tetap bekerja walaupun tidak memakai tombol halaman.

Hasil yang diharapkan

Permintaan langsung tetap ditolak jika catatan bukan milik Alice.

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

Status 403 pada lab bukan pola wajib untuk semua aplikasi; aplikasi dapat memilih 404 untuk mengurangi enumerasi.

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

Apakah menyembunyikan tombol catatan Bob memperbaiki endpoint?

Buka pembahasan

Tidak. Request langsung tetap mungkin; pemeriksaan server harus menolak akses tanpa hak.

Tantangan mandiri

Mengapa menambahkan UUID tidak memperbaiki pemeriksaan owner yang hilang?

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

Uji horizontal (lintas pemilik) dan vertikal (lintas peran) sesuai scope aplikasi nyata.

Referensi

WEB24 / BELAJAR DAN MENCOBA

Retest kontrol akses

30–50 menit · Prasyarat: WEB23

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Memeriksa ulang berarti mengulangi percobaan setelah perbaikan. Kita perlu mencoba akses yang salah dan akses yang benar. Jangan menyatakan semua aman hanya karena satu nomor sudah ditolak.

Bayangkan seperti ini

Setelah memperbaiki pagar, periksa bagian yang rusak sekaligus pintu yang seharusnya masih bisa dipakai.

Arti kata yang mungkin baru

fixed
mode lab yang memperbaiki kesalahan contoh
Penjelasan tambahan jika kamu ingin tahu lebih jauh

Retest membuktikan temuan lama tertutup dan akses sah masih bekerja. Jika hanya input temuan yang ditolak tetapi ID lain tetap bocor, akar masalah belum selesai. Data uji perlu mencakup pemilik berbeda dan objek tidak ada.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

  1. Unduh dan ekstrak ZIP lab dari halaman Perlengkapan ke komputer sendiri.
  2. Buka terminal di folder lab. Jalankan python lab_web.py --enable-local-training. Gunakan py atau python3 jika itu nama Python pada perangkatmu.
  3. Biarkan terminal tetap terbuka. Buka browser dan tulis http://127.0.0.1:8765/ pada bilah alamat di atas, lalu Enter.
  4. Jika langkah menyebut /note atau 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.
  5. Sesudah selesai, kembali ke terminal dan tekan Ctrl+C untuk menghentikan lab.

Langkah latihan

  1. Mulai lab dari proses baru.
  2. Pada fixed coba id=1.
  3. Coba id=2.
  4. Coba id=999.
  5. Tulis tiga hasil dan bandingkan dengan aturan izin di WEB22.

Hasil yang diharapkan

Hasil fixed adalah boleh untuk 1, ditolak untuk 2, dan tidak ditemukan untuk 999.

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

Jangan mencampur respons cache; lihat request aktual di Network atau curl.

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

Apa syarat retest kontrol akses yang memadai untuk kasus lab?

Buka pembahasan

Akses lintas pemilik ditolak, akses sah tetap diterima, dan objek tidak ada ditangani sesuai kontrak.

Tantangan mandiri

Usulkan satu kasus tambahan: objek yang berubah pemilik.

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

Tambahkan regresi pada lapisan aturan akses agar endpoint baru memakai kebijakan yang sama.

Referensi

WEB25 / LATIHAN MENYUSUN HASIL

Laporan Broken Access Control

30–50 menit · Prasyarat: WEB24

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Laporan akses yang salah harus menyebut siapa yang mengakses dan data siapa yang terbaca. Jika hanya membuktikan membaca, jangan menulis bahwa akun orang lain sudah diambil alih.

Bayangkan seperti ini

Melihat satu halaman buku tidak sama dengan memiliki seluruh lemari buku.

Arti kata yang mungkin baru

localhost
komputer atau perangkat yang sedang kamu pakai sendiri
fixed
mode lab yang memperbaiki kesalahan contoh
vulnerable
mode lab yang sengaja dibuat memiliki kesalahan untuk latihan
Penjelasan tambahan jika kamu ingin tahu lebih jauh

Laporan kontrol akses perlu menyebut aktor awal, hak yang seharusnya dimiliki, objek yang diakses, operasi, dan kontrol yang hilang. Dampak yang diuji baca tidak boleh dibesar-besarkan menjadi takeover akun.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

  1. Unduh dan ekstrak ZIP lab dari halaman Perlengkapan ke komputer sendiri.
  2. Buka terminal di folder lab. Jalankan python lab_web.py --enable-local-training. Gunakan py atau python3 jika itu nama Python pada perangkatmu.
  3. Biarkan terminal tetap terbuka. Buka browser dan tulis http://127.0.0.1:8765/ pada bilah alamat di atas, lalu Enter.
  4. Jika langkah menyebut /note atau 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.
  5. Sesudah selesai, kembali ke terminal dan tekan Ctrl+C untuk menghentikan lab.

Langkah latihan

  1. Buka template laporan.
  2. Tulis aktor Alice dan target /note localhost.
  3. Sertakan id=1 sebagai keadaan normal dan id=2 pada vulnerable.
  4. Tambahkan hasil fixed id=2 yang ditolak.
  5. Jelaskan batas bukti: hanya akses baca data fiktif dalam lab.

Hasil yang diharapkan

Laporan jelas dan tidak melebih-lebihkan akibatnya.

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

Jika bukti hanya status, tambahkan potongan body fiktif agar perbedaan objek jelas.

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

Apakah bukti baca catatan Bob berarti akun Bob diambil alih?

Buka pembahasan

Tidak. Bukti hanya mendukung akses baca lintas objek pada lab; takeover atau hak tulis belum dibuktikan.

Tantangan mandiri

Tulis ringkasan dua kalimat untuk pembaca nonteknis.

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

Rekomendasikan kontrol akses per objek serta regresi positif/negatif.

Referensi

WEB26 / BELAJAR DAN MENCOBA

Autentikasi: kegagalan rancangan

30–50 menit · Prasyarat: WEB25

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Autentikasi berarti memeriksa identitas. Contoh login lab hanya menirukan keputusan diterima atau ditolak. Ia tidak membuat akun nyata atau menyimpan sesi login.

Bayangkan seperti ini

Petugas harus memeriksa kartu anggota, bukan percaya karena seseorang menyebut nama anggota.

Arti kata yang mungkin baru

fixed
mode lab yang memperbaiki kesalahan contoh
vulnerable
mode lab yang sengaja dibuat memiliki kesalahan untuk latihan
Penjelasan tambahan jika kamu ingin tahu lebih jauh

Autentikasi memverifikasi identitas; otorisasi memutuskan hak. Endpoint /login lab hanya simulasi keputusan, tidak membuat session atau akun situs. Mode vulnerable menerima username demo tanpa memeriksa password; fixed membandingkan kredensial fiktif yang ditetapkan lab.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

  1. Unduh dan ekstrak ZIP lab dari halaman Perlengkapan ke komputer sendiri.
  2. Buka terminal di folder lab. Jalankan python lab_web.py --enable-local-training. Gunakan py atau python3 jika itu nama Python pada perangkatmu.
  3. Biarkan terminal tetap terbuka. Buka browser dan tulis http://127.0.0.1:8765/ pada bilah alamat di atas, lalu Enter.
  4. Jika langkah menyebut /note atau 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.
  5. Sesudah selesai, kembali ke terminal dan tekan Ctrl+C untuk menghentikan lab.

Langkah latihan

  1. Buka /login?mode=vulnerable&user=demo&password=salah.
  2. Lihat authenticated bernilai true.
  3. Ulangi dengan mode=fixed dan password=salah.
  4. Coba fixed memakai password latihan-lokal.
  5. Gunakan hanya password contoh ini, bukan password akunmu.

Hasil yang diharapkan

Vulnerable menerima password salah. Fixed menolaknya. Ini simulasi, bukan sistem login untuk dipakai di website sungguhan.

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

GET dengan password tidak cocok untuk produksi karena URL dapat masuk riwayat/log. Gunakan hanya nilai fiktif yang disediakan.

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

Apakah login fixed lab sudah menjadi autentikasi produksi?

Buka pembahasan

Tidak. Itu simulasi keputusan dengan kredensial fiktif, tanpa session, hashing penyimpanan, rate limit atau pemulihan akun produksi.

Tantangan mandiri

Jelaskan mengapa fixed lab bukan sistem login siap produksi.

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

Produksi perlu HTTPS, POST, hashing password yang tepat, rate limit, session aman, dan pemulihan akun yang dirancang baik.

Referensi

WEB27 / LATIHAN MEMAHAMI RANCANGAN

Session dan logout: latihan desain

30–50 menit · Prasyarat: WEB26

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Session membantu server mengingat siapa yang sudah masuk. Setelah logout, tanda masuk lama harus tidak berlaku lagi. Pelajaran ini berupa gambar alur dan rencana uji, bukan percobaan pada akun nyata.

Bayangkan seperti ini

Seperti kartu pengunjung yang harus dikembalikan atau dinonaktifkan saat kunjungan selesai.

Arti kata yang mungkin baru

server
program yang menerima permintaan lalu memberi jawaban
session
cara aplikasi menghubungkan beberapa permintaan dengan keadaan pengguna
Penjelasan tambahan jika kamu ingin tahu lebih jauh

Session menghubungkan token dengan identitas dan status login. Token perlu acak, kedaluwarsa, rotasi pada perubahan hak, serta pencabutan logout. Lab login tidak menerbitkan session, sehingga pelajaran ini adalah review desain terarah, bukan klaim uji session hidup.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

Pelajaran ini tidak meminta kamu menjalankan server lab. Siapkan aplikasi atau file yang disebut pada langkah latihan di bawah.

Langkah latihan

  1. Gambar proses masuk, mendapat tanda masuk, dan membuka halaman.
  2. Tambahkan langkah logout.
  3. Tulis bahwa server harus menolak tanda masuk lama sesudah logout.
  4. Buat contoh waktu habis agar tanda itu tidak berlaku selamanya.
  5. Bandingkan dengan progres CyberKit yang bukan tanda login.

Hasil yang diharapkan

Kamu punya gambar alur dan tahu mengapa menghilangkan tombol saja tidak cukup untuk logout.

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

Jangan membuat token dari username atau timestamp. Tidak ada token nyata yang perlu dibagikan.

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 menghapus cookie di browser saja belum cukup untuk logout?

Buka pembahasan

Token lama dapat tetap diterima server jika tidak dicabut atau kedaluwarsa sesuai rancangan.

Tantangan mandiri

Apa yang terjadi bila hanya UI logout tetapi server masih menerima token?

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

Terapkan pengelolaan session melalui framework terawat; cek atribut cookie dan invalidasi.

Referensi

WEB28 / LATIHAN MEMAHAMI RANCANGAN

JWT: decode bukan verifikasi

30–50 menit · Prasyarat: WEB27

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

JWT adalah salah satu bentuk token yang dapat membawa keterangan pengguna. Isi yang bisa dibaca belum berarti isinya asli. Program perlu memeriksa tanda tangan digital dan aturan token. Contoh kita hanya belajar mengubah teks menjadi bentuk lain lalu membacanya kembali.

Bayangkan seperti ini

Isi surat bisa dibaca siapa saja, tetapi cap atau tanda tangan perlu diperiksa untuk mengetahui asalnya.

Arti kata yang mungkin baru

token
tanda digital yang dapat dipakai aplikasi sesuai aturan tertentu
Python
bahasa dan alat untuk menjalankan program contoh
Penjelasan tambahan jika kamu ingin tahu lebih jauh

JWT bertanda tangan mengikat payload dengan kunci dan algoritma. Base64url bukan enkripsi: payload dapat dibaca. Validasi mencakup signature, algoritma yang diizinkan, issuer, audience dan waktu sesuai kontrak. Pelajaran ini latihan lokal struktur token, bukan implementasi kriptografi produksi.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

Pelajaran ini tidak meminta kamu menjalankan server lab. Siapkan aplikasi atau file yang disebut pada langkah latihan di bawah.

Langkah latihan

  1. Buka contoh jwt_demo.py di bawah.
  2. Simpan sebagai file Python di folder latihan.
  3. Jalankan dengan interpreter yang berhasil dipakai pada F08.
  4. Lihat data awal dapat dibaca kembali.
  5. Ubah role pada data contoh dan ingat bahwa perubahan itu tidak membuat tanda tangan yang sah.

Hasil yang diharapkan

Kamu memahami bahwa mengubah atau membaca isi token tidak membuktikan token itu diterima server.

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

Padding base64url dapat perlu ditambahkan untuk decode. Jangan memakai token akun sungguhan.

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

Apakah payload JWT yang berhasil diedit berarti token valid?

Buka pembahasan

Tidak. Signature dan klaim harus diverifikasi; encoding atau decoding tidak membuktikan keaslian.

Tantangan mandiri

Jelaskan perbedaan encoding, signature dan enkripsi.

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 library terawat dan pin algoritma/kunci serta validasi klaim sesuai konteks.

Referensi

WEB29 / BELAJAR DAN MENCOBA

API: field yang berlebihan

30–50 menit · Prasyarat: WEB28

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

API adalah cara program saling bertukar data. Program sebaiknya mengirim hanya data yang diperlukan. Menyembunyikan data di tampilan tidak cukup jika data itu masih ada dalam jawaban mentah.

Bayangkan seperti ini

Saat meminjam buku, petugas cukup memberi data buku, bukan seluruh catatan internal perpustakaan.

Arti kata yang mungkin baru

fixed
mode lab yang memperbaiki kesalahan contoh
vulnerable
mode lab yang sengaja dibuat memiliki kesalahan untuk latihan
field
satu bagian data yang mempunyai nama
Penjelasan tambahan jika kamu ingin tahu lebih jauh

API dapat membocorkan data meski objek boleh diakses. Serialisasi seluruh objek internal dapat mengirim field yang tidak dibutuhkan klien. Lab /api/profile mempunyai nama publik dan internal_note fiktif; fixed memakai daftar field yang diizinkan.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

  1. Unduh dan ekstrak ZIP lab dari halaman Perlengkapan ke komputer sendiri.
  2. Buka terminal di folder lab. Jalankan python lab_web.py --enable-local-training. Gunakan py atau python3 jika itu nama Python pada perangkatmu.
  3. Biarkan terminal tetap terbuka. Buka browser dan tulis http://127.0.0.1:8765/ pada bilah alamat di atas, lalu Enter.
  4. Jika langkah menyebut /note atau 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.
  5. Sesudah selesai, kembali ke terminal dan tekan Ctrl+C untuk menghentikan lab.

Langkah latihan

  1. Buka /api/profile?mode=vulnerable&id=1.
  2. Cari field internal_note yang berisi DEMO-ONLY.
  3. Ganti mode menjadi fixed.
  4. Bandingkan nama field yang dikirim.
  5. Catat bahwa field internal tidak ikut terkirim pada fixed.

Hasil yang diharapkan

Fixed mengirim id dan name saja. Data internal tidak sekadar disembunyikan dari tampilan.

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

Nama field saja tidak selalu berarti rahasia; lab secara eksplisit menetapkan field internal tidak untuk klien.

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 internal_note harus hilang dari JSON, bukan hanya UI?

Buka pembahasan

Klien dapat membaca respons mentah. Field yang tidak diperlukan dan tidak boleh diketahui harus dibatasi pada serialisasi server.

Tantangan mandiri

Mengapa menyembunyikan field di tampilan tidak cukup jika JSON tetap memuatnya?

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

Serialisasikan field sesuai kebutuhan dan kebijakan; gabungkan dengan otorisasi objek.

Referensi

WEB30 / LATIHAN MENYUSUN HASIL

Proyek API dan identitas

30–50 menit · Prasyarat: WEB29

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Tiga masalah bisa terjadi di tempat berbeda: identitas salah diterima, catatan orang lain terbaca, atau data internal ikut terkirim. Ketiganya perlu dijelaskan terpisah supaya perbaikannya tepat.

Bayangkan seperti ini

Memeriksa kartu anggota, izin meminjam, dan isi bukti peminjaman adalah tiga pemeriksaan berbeda.

Arti kata yang mungkin baru

session
cara aplikasi menghubungkan beberapa permintaan dengan keadaan pengguna
Penjelasan tambahan jika kamu ingin tahu lebih jauh

Pengujian identitas mencakup keputusan login, hak objek, dan data yang dikirim. Ketiganya perlu dinilai terpisah agar satu patch tidak dianggap menyelesaikan semuanya. Proyek ini menggabungkan tiga simulasi lokal dengan batas yang jujur.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

  1. Unduh dan ekstrak ZIP lab dari halaman Perlengkapan ke komputer sendiri.
  2. Buka terminal di folder lab. Jalankan python lab_web.py --enable-local-training. Gunakan py atau python3 jika itu nama Python pada perangkatmu.
  3. Biarkan terminal tetap terbuka. Buka browser dan tulis http://127.0.0.1:8765/ pada bilah alamat di atas, lalu Enter.
  4. Jika langkah menyebut /note atau 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.
  5. Sesudah selesai, kembali ke terminal dan tekan Ctrl+C untuk menghentikan lab.

Langkah latihan

  1. Uji password salah pada /login di dua mode.
  2. Uji id=2 pada /note di dua mode.
  3. Uji id=1 pada /api/profile di dua mode.
  4. Tulis tiga laporan pendek dengan bukti masing-masing.
  5. Sebutkan bagian session dan JWT sebagai latihan rancangan, bukan akun yang benar-benar diuji.

Hasil yang diharapkan

Tiga laporan menjelaskan tiga penyebab berbeda dengan data lab saja.

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

Jangan menyebut akun nyata diambil alih; lab hanya keputusan dan data fiktif.

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 login, IDOR dan field API ditulis sebagai temuan terpisah?

Buka pembahasan

Ketiganya mempunyai akar masalah dan kontrol berbeda: identitas, hak objek, dan pemilihan data respons.

Tantangan mandiri

Prioritaskan perbaikan untuk sistem hipotetis berisi data sensitif dengan alasan.

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

Gabungkan autentikasi, otorisasi dan minimisasi data dengan pengujian regresi.

Referensi

WEB31 / LATIHAN MEMAHAMI RANCANGAN

CSRF: perubahan tanpa niat pengguna

30–50 menit · Prasyarat: WEB30

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

CSRF dapat membuat browser mengirim permintaan yang tidak dimaksudkan pengguna. Hal ini berkaitan dengan kredensial yang ikut terkirim otomatis. Kita belajar lewat gambar dan tabel, tanpa membuat permintaan ke akun nyata.

Bayangkan seperti ini

Seperti formulir titipan yang disalahgunakan seolah-olah kamu sendiri yang memintanya.

Arti kata yang mungkin baru

server
program yang menerima permintaan lalu memberi jawaban
browser
aplikasi untuk membuka website
Penjelasan tambahan jika kamu ingin tahu lebih jauh

CSRF memanfaatkan browser yang mengirim kredensial secara otomatis untuk request yang tidak diinginkan pengguna. Kontrol membutuhkan desain aplikasi seperti token CSRF dan verifikasi origin sesuai konteks; SameSite membantu tetapi tidak selalu cukup. Latihan ini review desain, bukan server CSRF tambahan.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

Pelajaran ini tidak meminta kamu menjalankan server lab. Siapkan aplikasi atau file yang disebut pada langkah latihan di bawah.

Langkah latihan

  1. Gambar pengguna yang sudah masuk ke aplikasi.
  2. Gambar situs lain yang mencoba memicu perubahan data.
  3. Tambahkan kode pemeriksaan khusus pada formulir sebagai rancangan perlindungan.
  4. Buat kasus kode benar, hilang, salah, dan milik sesi lain.
  5. Tulis bahwa hanya permintaan yang sah boleh diterima server.

Hasil yang diharapkan

Kamu dapat menjelaskan risiko dan empat kasus uji rancangan CSRF.

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

Jangan membuat halaman untuk mengirim request ke akun nyata. GET pada lab hanya simulasi dan bukan desain perubahan state produksi.

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

Apa yang harus diuji ketika token CSRF tidak ada atau dari session berbeda?

Buka pembahasan

Server harus menolak operasi yang membutuhkan proteksi itu. Token benar dan session sah tetap perlu uji positif.

Tantangan mandiri

Mengapa konfirmasi UI saja tidak melindungi endpoint?

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 mekanisme anti-CSRF framework, method sesuai, dan kebijakan cookie yang tepat.

Referensi

WEB32 / LATIHAN MEMAHAMI RANCANGAN

Upload dan path traversal: review aman

30–50 menit · Prasyarat: WEB31

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

File yang diunggah perlu diperiksa jenis, ukuran, nama, dan tempat menyimpannya. Path traversal berarti masukan nama lokasi dapat keluar dari folder yang diizinkan. Latihan ini hanya menyusun aturan di kertas.

Bayangkan seperti ini

Petugas penitipan perlu memeriksa barang dan menyimpannya di loker yang tepat, bukan mengikuti sembarang alamat dari pengunjung.

Arti kata yang mungkin baru

server
program yang menerima permintaan lalu memberi jawaban
path
alamat lokasi file atau halaman
Penjelasan tambahan jika kamu ingin tahu lebih jauh

Upload menambah risiko format, ukuran, lokasi simpan, dan eksekusi file. Path traversal muncul ketika path pengguna dapat keluar direktori yang diizinkan. Latihan ini memakai model path dan tidak membaca file sistem atau membuat endpoint upload rentan.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

Pelajaran ini tidak meminta kamu menjalankan server lab. Siapkan aplikasi atau file yang disebut pada langkah latihan di bawah.

Langkah latihan

  1. Buat daftar foto.png, ../rahasia.txt, besar.bin, dan script.html sebagai nama fiktif.
  2. Tentukan jenis dan ukuran file yang boleh diterima.
  3. Tulis bahwa server memberi nama simpan sendiri.
  4. Rancang agar file tidak dapat dijalankan sebagai program web.
  5. Tuliskan keputusan untuk setiap nama tanpa membaca file sistem.

Hasil yang diharapkan

Kamu memiliki aturan unggah dan penyimpanan yang jelas, bukan hanya melihat ekstensi file.

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

Ekstensi dan Content-Type dari klien dapat dipalsukan. Pemeriksaan path perlu memperhatikan symlink dan perilaku OS.

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

Apakah mengganti nama file atau mengecek ekstensi saja cukup untuk upload aman?

Buka pembahasan

Tidak. Perlu kebijakan format, ukuran, lokasi, nama milik server, otorisasi dan pencegahan eksekusi, sesuai kebutuhan.

Tantangan mandiri

Mengapa mengganti ../ saja tidak menjamin path aman?

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 API penyimpanan dan library terawat, allowlist format dan batas ukuran.

Referensi

WEB33 / LATIHAN MEMAHAMI RANCANGAN

SSRF dan pembatasan tujuan

30–50 menit · Prasyarat: WEB32

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

SSRF terjadi ketika server disuruh mengambil alamat yang seharusnya tidak boleh dijangkau. Kita hanya menggambar fitur pengambil URL. Jangan mencoba alamat layanan internal atau metadata sungguhan.

Bayangkan seperti ini

Seperti menyuruh kurir kantor masuk ke ruangan terlarang dengan alasan mengambil paket.

Arti kata yang mungkin baru

server
program yang menerima permintaan lalu memberi jawaban
Penjelasan tambahan jika kamu ingin tahu lebih jauh

SSRF terjadi ketika server mengambil URL yang dipengaruhi pengguna dan dapat menjangkau tujuan yang seharusnya tidak boleh. Lab tidak menyediakan fetch URL arbitrer. Latihan ini threat modeling terhadap fitur impor URL agar tidak menyentuh layanan jaringan nyata.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

Pelajaran ini tidak meminta kamu menjalankan server lab. Siapkan aplikasi atau file yang disebut pada langkah latihan di bawah.

Langkah latihan

  1. Gambar pengguna, server, dan alamat tujuan.
  2. Tentukan satu tujuan contoh yang boleh diambil.
  3. Tulis aturan jenis alamat dan batas waktu/ukuran jawaban.
  4. Tambahkan pemeriksaan lagi jika tujuan mengalihkan ke alamat lain.
  5. Tuliskan bahwa tujuan internal pada fitur publik harus dibatasi.

Hasil yang diharapkan

Kamu memahami mengapa server tidak boleh mengambil sembarang URL dari pengguna.

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

Daftar string terlarang mudah tidak lengkap. Jangan menguji alamat metadata atau layanan internal nyata.

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 tujuan redirect perlu dicek ulang pada fitur pengambil URL?

Buka pembahasan

Tujuan awal yang diizinkan dapat mengarah ke tujuan yang tidak diizinkan. Pembatasan berlaku pada seluruh alur pengambilan.

Tantangan mandiri

Mengapa validasi host sebelum DNS saja belum selalu cukup?

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

Batasi kemampuan fetch dan egress, pakai allowlist tujuan serta timeout/ukuran.

Referensi

WEB34 / BELAJAR DAN MENCOBA

Konfigurasi, TLS, dependency dan error

30–50 menit · Prasyarat: WEB33

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Pengaturan dan pembaruan ikut memengaruhi keamanan. HTTPS menjaga sambungan, tetapi kesalahan query atau izin tetap perlu diperbaiki. Pesan error publik juga tidak perlu membuka rincian bagian dalam aplikasi.

Bayangkan seperti ini

Pagar yang baik tidak menggantikan kunci pintu dan aturan siapa boleh masuk.

Arti kata yang mungkin baru

database
tempat program menyimpan dan mencari data secara teratur
Python
bahasa dan alat untuk menjalankan program contoh
Penjelasan tambahan jika kamu ingin tahu lebih jauh

Keamanan aplikasi dipengaruhi konfigurasi dan rantai dependensi. HTTPS melindungi transport tetapi tidak memperbaiki injection. Error rinci mempermudah diagnosis namun dapat membocorkan informasi di publik. Status dependency perlu diverifikasi, bukan dinilai dari umur versi saja.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

Pelajaran ini tidak meminta kamu menjalankan server lab. Siapkan aplikasi atau file yang disebut pada langkah latihan di bawah.

Langkah latihan

  1. Daftar komponen website CyberKit: HTML, CSS, dan JavaScript.
  2. Pisahkan Python lab sebagai program lokal, bukan program hosting.
  3. Amati error lab yang tidak menampilkan isi database.
  4. Buat checklist HTTPS, file rahasia, folder lab, dan pembaruan.
  5. Tandai mana yang benar-benar diperiksa dan mana yang baru rencana.

Hasil yang diharapkan

Kamu memahami bahwa keamanan terdiri dari beberapa pemeriksaan, bukan satu tombol.

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

Situs lokal file:// tidak dapat membuktikan TLS hosting. Tandai pemeriksaan domain sebagai pekerjaan pasca-upload.

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

Apakah HTTPS memperbaiki SQLi atau IDOR?

Buka pembahasan

Tidak. TLS melindungi lalu lintas, sedangkan SQLi dan IDOR memerlukan kontrol aplikasi pada query dan hak akses.

Tantangan mandiri

Mengapa CSP bukan pengganti parameter query atau kontrol akses?

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

Minimalkan dependency, perbarui berdasar advisory, pisahkan log internal dari error publik.

Referensi

WEB35 / BELAJAR DAN MENCOBA

Log, privasi dan penanganan bukti

30–50 menit · Prasyarat: WEB34

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Log adalah catatan kejadian program. Catatan ini membantu mencari masalah, tetapi bisa menyimpan data pribadi atau rahasia jika dibuat sembarangan. Bukti untuk dibagikan perlu dibersihkan lebih dulu.

Bayangkan seperti ini

Buku piket berguna, tetapi tidak seharusnya berisi password teman sekelas.

Arti kata yang mungkin baru

request
pesan permintaan dari browser atau alat
token
tanda digital yang dapat dipakai aplikasi sesuai aturan tertentu
Penjelasan tambahan jika kamu ingin tahu lebih jauh

Log dapat membantu investigasi sekaligus membocorkan token, password, query dan data pribadi. Lab login GET sengaja memakai kredensial fiktif; jangan meniru pola itu di produksi. Bukti perlu cukup untuk reproduksi tanpa menyimpan lebih banyak data daripada diperlukan.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

Pelajaran ini tidak meminta kamu menjalankan server lab. Siapkan aplikasi atau file yang disebut pada langkah latihan di bawah.

Langkah latihan

  1. Lihat contoh catatan request lab.
  2. Catat jenis data yang tidak boleh dibagikan, seperti password dan token.
  3. Buat salinan laporan latihan untuk dibagikan.
  4. Hapus atau sensor data pribadi pada salinan itu.
  5. Tentukan kapan bukti latihan akan dihapus.

Hasil yang diharapkan

Laporan tetap berguna tanpa membuka rahasia atau identitas nyata.

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

Jangan mengunggah log mentah ke layanan publik untuk analisis. Jika rahasia nyata bocor, cabut/ganti sesuai pemiliknya.

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 password fiktif lab tidak boleh diganti dengan password nyata pada query?

Buka pembahasan

URL dapat masuk riwayat, log, dan bukti. Lab hanya untuk nilai demonstrasi; desain produksi tidak menaruh password dalam URL.

Tantangan mandiri

Apa beda kebutuhan log operasi dan bukti laporan?

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

Hindari rahasia dalam URL, redaksi pada sumber log, batasi akses dan retensi.

Referensi

WEB36 / BELAJAR DAN MENCOBA

Metodologi audit dari scope sampai retest

30–50 menit · Prasyarat: WEB35

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Pemeriksaan yang rapi dimulai dengan izin, mengenali fitur, mencatat keadaan normal, mencoba satu perubahan, lalu menulis hasil. Hasil yang tidak menemukan masalah tidak membuktikan seluruh aplikasi pasti aman.

Bayangkan seperti ini

Seperti daftar pemeriksaan sepeda: tiap bagian diperiksa dengan cara yang jelas.

Penjelasan tambahan jika kamu ingin tahu lebih jauh

Audit yang dapat diulang mengikuti scope, inventaris, baseline, pengujian terkontrol, validasi, pelaporan dan retest. Hasil negatif berarti tidak ditemukan pada kasus yang diuji, bukan jaminan bebas kelemahan. Gunakan WSTG sebagai panduan, bukan klaim semua bagiannya sudah dicakup kursus.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

Pelajaran ini tidak meminta kamu menjalankan server lab. Siapkan aplikasi atau file yang disebut pada langkah latihan di bawah.

Langkah latihan

  1. Tulis rencana untuk lab 8765 saja.
  2. Pilih empat fitur yang sudah dipelajari.
  3. Untuk tiap fitur, tulis keadaan normal dan satu kasus uji.
  4. Lakukan percobaan dan simpan hasil asli.
  5. Tulis bagian yang tidak sempat diuji sebagai pekerjaan berikutnya.

Hasil yang diharapkan

Rencana dan hasil bisa dicocokkan satu per satu.

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

Jika alat gagal, catat kasus belum diuji, bukan lulus.

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

Apa arti hasil negatif pada satu kasus audit?

Buka pembahasan

Kasus itu tidak menemukan kelemahan pada kondisi yang diuji; bukan jaminan seluruh aplikasi bebas kelemahan.

Tantangan mandiri

Pisahkan temuan, observasi, dan pengujian yang belum dilakukan.

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 metodologi konsisten dan review sejawat ketika tersedia.

Referensi

WEB37 / BELAJAR DAN MENCOBA

Dampak, prioritas dan rekomendasi

30–50 menit · Prasyarat: WEB36

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Masalah yang sama bisa punya akibat berbeda pada tempat berbeda. Prioritas perbaikan perlu melihat data, hak pengguna, dan syarat terjadinya masalah. Jangan mengarang kerugian dari data fiktif lab.

Bayangkan seperti ini

Kaca retak di lemari kosong dan kaca retak di laboratorium berbahaya bisa membutuhkan perhatian berbeda.

Penjelasan tambahan jika kamu ingin tahu lebih jauh

Prioritas mempertimbangkan data, hak awal, prasyarat, paparan dan pengaruh bisnis. Skor teknis tidak sama dengan urgensi organisasi. Lingkungan lab fiktif tidak mewakili kerugian bisnis nyata; gunakan skenario hipotetis yang diberi label.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

Pelajaran ini tidak meminta kamu menjalankan server lab. Siapkan aplikasi atau file yang disebut pada langkah latihan di bawah.

Langkah latihan

  1. Pilih contoh SQLi, XSS, dan IDOR dari lab.
  2. Tulis apa yang benar-benar terlihat.
  3. Pisahkan contoh akibat pada toko sungguhan sebagai cerita andaikan, bukan fakta lab.
  4. Urutkan perbaikan dengan alasan.
  5. Tuliskan cara memeriksa perbaikannya.

Hasil yang diharapkan

Kamu bisa menjelaskan prioritas tanpa memakai angka yang tidak dipahami.

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

Jangan memberi angka CVSS tanpa memahami metrik. Penilaian kualitatif yang beralasan cukup untuk kursus ini.

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 prioritas tidak selalu sama dengan skor teknis?

Buka pembahasan

Paparan, data, prasyarat dan konteks bisnis memengaruhi urgensi. Fakta lab harus dipisahkan dari skenario hipotetis.

Tantangan mandiri

Mengapa temuan sama bisa punya prioritas berbeda di dua organisasi?

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

Komunikasikan risiko residual dan keputusan penerimaan risiko kepada pemilik yang tepat.

Referensi

WEB38 / BELAJAR DAN MENCOBA

Disclosure dan bug bounty: aturan kerja

30–50 menit · Prasyarat: WEB37

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Bug bounty adalah program yang memiliki aturan izin pengujian sendiri. Membaca artikel atau menemukan website tidak memberi izin otomatis. Pelajaran ini hanya latihan membuat aturan dan laporan untuk lab sendiri.

Bayangkan seperti ini

Lomba memiliki lapangan dan aturan; peserta tidak boleh memindahkan pertandingan ke halaman orang lain.

Arti kata yang mungkin baru

localhost
komputer atau perangkat yang sedang kamu pakai sendiri
Penjelasan tambahan jika kamu ingin tahu lebih jauh

Program bug bounty mempunyai scope, aturan metode, batas data dan kanal pelaporan yang spesifik. Tidak semua organisasi membuka program. Pelajaran ini membahas persiapan; tidak meminta peserta menguji target publik atau menjanjikan penghasilan.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

Pelajaran ini tidak meminta kamu menjalankan server lab. Siapkan aplikasi atau file yang disebut pada langkah latihan di bawah.

Langkah latihan

  1. Buat aturan program fiktif dengan target localhost.
  2. Tulis metode yang boleh dan kondisi harus berhenti.
  3. Tulis contoh laporan pendek.
  4. Tambahkan aturan menjaga data dan tidak memaksa orang membayar.
  5. Simulasikan permintaan pemeriksaan ulang tanpa mengirim pesan ke pihak luar.

Hasil yang diharapkan

Kamu memahami izin dan cara melaporkan masalah secara sopan.

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

Jika ingin ikut program nyata nanti, baca aturan terbaru dan pastikan izin sebelum tindakan. Kursus ini tidak memberi izin tersebut.

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

Apakah membaca aturan bug bounty saja mengizinkan target di luar scope?

Buka pembahasan

Tidak. Hanya target, metode dan waktu yang benar-benar diizinkan oleh aturan terbaru yang termasuk scope.

Tantangan mandiri

Tulis pesan laporan profesional tanpa klaim yang tidak dibuktikan.

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

Hormati scope, privasi dan waktu perbaikan yang disepakati.

Referensi

WEB39 / LATIHAN MENYUSUN HASIL

Proyek akhir pentest lokal

30–50 menit · Prasyarat: WEB38

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Proyek akhir memakai lima fitur lab yang sudah dipelajari. Tujuannya menunjukkan langkah yang aman dan penjelasan yang jelas. Tidak perlu mencari target lain atau menambahkan serangan baru.

Bayangkan seperti ini

Seperti mempresentasikan hasil praktikum: tunjukkan cara, hasil, dan alasan, bukan hanya mengatakan berhasil.

Arti kata yang mungkin baru

localhost
komputer atau perangkat yang sedang kamu pakai sendiri
fixed
mode lab yang memperbaiki kesalahan contoh
vulnerable
mode lab yang sengaja dibuat memiliki kesalahan untuk latihan
Penjelasan tambahan jika kamu ingin tahu lebih jauh

Proyek akhir menilai kemampuan merencanakan, membuktikan, menjelaskan dan memverifikasi perbaikan. Kelima kelas lab adalah SQLi, XSS, IDOR, keputusan autentikasi, serta paparan field API. Cakupannya sengaja dibatasi; CSRF, upload, SSRF dan JWT tetap latihan desain.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

Pelajaran ini tidak meminta kamu menjalankan server lab. Siapkan aplikasi atau file yang disebut pada langkah latihan di bawah.

Langkah latihan

  1. Mulai lab dari proses baru dan tulis izin localhost.
  2. Uji /search, /echo, /note, /login, dan /api/profile pada vulnerable serta fixed.
  3. Untuk tiap fitur simpan hasil normal dan contoh masalah.
  4. Tulis perbaikan dan buktikan fungsi normal tetap bekerja.
  5. Nilai lima kelompok pada rubrik, masing-masing 0–4. Target 16 dari 20.

Hasil yang diharapkan

Ada lima temuan dengan bukti dan pemeriksaan perbaikan. Nilai mandiri ini bukan sertifikat.

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

Jika skrip XSS tidak diverifikasi di browser, tandai observasi browser belum dilakukan; tes string tidak menggantikannya.

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

Apa yang perlu dibuktikan selain lima contoh rentan berhasil?

Buka pembahasan

Mode fixed menolak kasus buruk, fungsi sah tetap bekerja, dan laporan menyebut batas simulasi serta hasil aktual.

Tantangan mandiri

Presentasikan satu temuan kepada pembaca nonteknis dan jelaskan batas kesimpulan.

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

Lakukan review ulang bagian bernilai rendah; simpan portofolio tersensor tanpa menyertakan server rentan pada hosting.

Referensi

WEB40 / BELAJAR DAN MENCOBA

Rencana lanjut dan pemeliharaan pengetahuan

30–50 menit · Prasyarat: WEB39

Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.

Kita belajar apa?

Belajar tidak berhenti setelah satu buku. Pilih bagian yang masih sulit, ulangi dengan pelan, lalu tulis apa yang sekarang bisa kamu jelaskan sendiri. Kemampuan berkembang melalui latihan dan masukan.

Bayangkan seperti ini

Seperti belajar bersepeda: membaca petunjuk membantu, tetapi keseimbangan tumbuh dari latihan.

Penjelasan tambahan jika kamu ingin tahu lebih jauh

Keterampilan keamanan berubah bersama sistem dan versi alat. Menyelesaikan 60 pelajaran tertulis adalah titik awal terstruktur, bukan status mahir untuk semua sistem. Materi perlu pembaruan, validasi pemula, serta bukti latihan independen.

Persiapan

Siapkan catatan dan baca panduan perangkat. Pakai data buatan, bukan data pribadi. Baca satu langkah, kerjakan, lalu periksa hasilnya sebelum melanjutkan.

Pelajaran ini tidak meminta kamu menjalankan server lab. Siapkan aplikasi atau file yang disebut pada langkah latihan di bawah.

Langkah latihan

  1. Baca laporan proyekmu.
  2. Pilih tiga bagian yang masih membuatmu ragu.
  3. Cari kembali pelajaran dan sumber resminya.
  4. Buat jadwal kecil untuk mengulang satu bagian setiap kali belajar.
  5. Tulis mana yang sudah dicoba dan mana yang baru dipelajari lewat gambar.

Hasil yang diharapkan

Kamu mempunyai rencana belajar berikutnya dan bisa menjelaskan batas kemampuan sendiri.

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

Jika sumber berubah, perbarui catatan dan verifikasi contoh lagi. Jangan menganggap screenshot lama bukti versi sekarang.

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

Apa arti menyelesaikan semua pelajaran untuk kemampuan profesional?

Buka pembahasan

Kurikulum tertulis selesai dibaca/dilatih; kemampuan perlu bukti independen, pengulangan, review dan pembaruan. Itu bukan sertifikasi.

Tantangan mandiri

Jelaskan satu hal yang belum mampu Anda buktikan tanpa bantuan.

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

Pertahankan lab lokal, batasi data, dan perbarui materi berdasarkan sumber primer serta hasil aktual.

Referensi

Contoh kode pendamping

F08 · Contoh halo.py

nama = "Pelajar"
print("Halo", nama)
jumlah = 2 + 3
print(jumlah)

WEB02 · Contoh halaman latihan mandiri

<!doctype html>
<html lang="id">
<meta charset="utf-8">
<title>Latihan lokal</title>
<button id="ubah">Ubah teks</button>
<p id="hasil">Belum diubah</p>
<script>
document.getElementById("ubah").addEventListener("click", () => {
  document.getElementById("hasil").textContent = "Berhasil lokal";
});
</script>
</html>

WEB28 · jwt_demo.py — encoding payload, bukan JWT yang valid

import base64
import json

payload = {"sub": "demo", "role": "reader"}
raw = json.dumps(payload).encode("utf-8")
encoded = base64.urlsafe_b64encode(raw).rstrip(b"=")
print("Encoded:", encoded.decode())
padding = b"=" * (-len(encoded) % 4)
decoded = json.loads(base64.urlsafe_b64decode(encoded + padding))
print("Decoded:", decoded)
print("Tidak ada signature dan tidak ada server penerima.")