XSS Prevention
TersediaInput dan outputPemula
Input tak tepercaya menjadi berbahaya saat diperlakukan sebagai kode. Bandingkan rendering yang tidak aman dan yang aman untuk teks yang sama.
Ketik input, lalu bandingkan bagaimana renderer yang rentan dan yang aman memperlakukannya. Lab ini memvisualisasikan cara browser mem-parsing hasilnya, karakter apa yang diubah oleh output encoding, dan seperti apa kode yang aman.
- Input tak tepercaya adalah data, bukan kode
- Komentar, nama, dan kata pencarian datang dari orang yang tidak Anda kendalikan. Bahaya muncul saat halaman menyusun HTML dengan menempelkan teks itu, karena browser tidak bisa membedakan markup Anda dari markup mereka.
- Tempat teks mendarat menentukan pertahanannya
- Teks di dalam elemen, di dalam atribut berkutip, atau di dalam URL di-parse dengan aturan berbeda. Setiap tempat butuh encoding atau validasinya sendiri.
- Output encoding menjaga teks tetap teks
- Encoding mengubah karakter seperti < dan " menjadi entitas seperti < dan ". Browser lalu menampilkannya sebagai karakter, bukan membacanya sebagai markup.
- Berlapis, bukan satu tembok
- Framework yang me-render teks dengan aman secara default, encoding yang tepat, validasi URL, dan Content Security Policy masing-masing menghentikan kesalahan yang berbeda. Encoding yang benar adalah perbaikan utamanya; yang lain membatasi kerusakan jika ada yang lolos.
Yang akan Anda pelajari
- Mengenali input tak tepercaya dan tempat ia masuk ke halaman.
- Mengetahui metode rendering mana yang memperlakukan teks sebagai HTML, dan mana yang tetap menjadikannya teks.
- Menerapkan output encoding sesuai konteks tempat data ditampilkan.
- Menjelaskan bagaimana framework dan Content Security Policy menambah lapisan pertahanan.
0 dari 3 skenario sudah dicoba
0 dari 3 skenario sudah dicoba
Progres Anda di lab ini
Coba setiap skenario di bawah untuk menyelesaikan lab. Membuka halaman atau berpindah langkah tidak dihitung.
- Di isi HTML, analisis input yang akan menjalankan kodeBelum
- Di atribut berkutip, analisis input yang keluar dari kutipBelum
- Analisis teks biasa yang mengandung < atau & dan lihat encoding menjaganya tetap utuhBelum
Berikutnya: tantangan terpandu
Safe Comment Box menerapkan apa yang Anda latih di sini dalam skenario singkat.
Mulai Safe Comment BoxTantangan terpandu
- TersediaPemula
Safe Comment Box
Buat kotak komentar aman untuk ditampilkan, tanpa merusak komentar yang benar-benar ditulis orang.