WEB18 / BELAJAR DAN MENCOBA
XSS: teks menjadi markup
Masih dalam pengembangan. Belajar pelan-pelan. Gunakan komputer sendiri dan data contoh.
Isi pelajaran ini
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.
- Unduh dan ekstrak ZIP lab dari halaman Perlengkapan ke komputer sendiri.
- Buka terminal di folder lab. Jalankan
python lab_web.py --enable-local-training. Gunakanpyataupython3jika itu nama Python pada perangkatmu. - Biarkan terminal tetap terbuka. Buka browser dan tulis
http://127.0.0.1:8765/pada bilah alamat di atas, lalu Enter. - Jika langkah menyebut
/noteatau nama halaman lain, tambahkan ke alamat lab. Contoh:http://127.0.0.1:8765/note?mode=fixed&id=1. Pilih mode lewat kotak pilihan jika tersedia. - Sesudah selesai, kembali ke terminal dan tekan Ctrl+C untuk menghentikan lab.
Langkah latihan
- Buka /echo pada lab 8765.
- Pilih vulnerable dan kirim Halo.
- Kirim <b>latihan</b> dan lihat tulisan tebal.
- Pilih fixed dan kirim input sama.
- 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.
