Bahasa Indonesia

Alat pengembang · HTML pelarian entitas

HTML lolos sebagai garis pertahanan pertama XSS: apa yang terjadi tanpanya

· Mengapa itu penting

html keamanan xss

HTML lolos sebagai baris pertama pertahanan XSS: apa yang terjadi tanpa ditampilkan sebagai diagram referensi karakter yang aman untuk browser
Ilustrasi vektor ToolAcre asli

Sebagian besar skrip lintas situs disebabkan oleh satu jalan keluar yang hilang. Posting ini mengikuti nama pengguna yang berisi tag skrip dari database ke halaman, menunjukkan dengan tepat di mana pelolosan menghentikannya, dan di mana switch 'aman' kerangka kerja membatalkan perlindungan.

Jalur-XSS yang disimpan disebabkan oleh batas keluaran HTML yang tidak aman

Jalur-XSS yang disimpan disebabkan oleh batas keluaran HTML yang tidak aman. Teks yang disimpan menjadi markup yang dapat dieksekusi ketika templat melewati pelolosan dan memasukkan nama pengguna atau komentar langsung ke HTML. Kerentanannya terletak pada batas keluaran, bukan pada baris database.

Untuk memverifikasi html yang lolos dari pencegahan xss, buat jalur xss yang disimpan untuk pengembang full-stack junior yang merender nama pengguna dan komentar. Pelestarian yang disebabkan oleh batas yang tidak aman saat disimpan-XSS menghasilkan batas keluaran html; mengidentifikasi di mana bukti batas yang disimpan-XSS digunakan. Pengamatan tentang bukti batas yang disimpan-XSS hanya dimiliki oleh teks HTML.

Cara browser membaca teks yang tidak lolos — parser tidak dapat mengetahui data dari markup Anda

Cara browser membaca teks yang tidak lolos — parser tidak dapat mengetahui data dari markup Anda. Parser HTML tidak dapat menyimpulkan karakter mana yang berasal dari administrator dan mana yang berasal dari pengunjung. Tanda kurang dari memulai transisi tokenizer yang sama terlepas dari asal usulnya.

Pengembang full-stack junior yang merender nama pengguna dan komentar dapat menguji cara browser membaca dengan merekam teks yang tidak lolos parser sebelum batas yang disimpan-XSS. Bandingkan tidak dapat memberi tahu data Anda setelahnya dan menemukan parser yang bertanggung jawab dari markup Anda. Hasil pencegahan xss html ini menjelaskan bukti batas yang disimpan-XSS, bukan konteks yang dapat dieksekusi.

Apa yang lolos dari perubahan — < menjadi <, parser melihat teks, dan payload ditampilkan daripada dijalankan

Apa yang lolos dari perubahan — < menjadi <, parser melihat teks, dan payload ditampilkan daripada dijalankan. Mengganti < dengan < membuat parser tetap dalam teks. ToolAcre juga menangani ampersand, lebih besar dari dan kedua tanda kutip sehingga nilai yang diubah dapat diperiksa berdasarkan keluaran HTML yang diharapkan dari template.

Pisahkan perubahan yang terjadi dalam sampel batas-XSS yang disimpan secara singkat. Tunjukkan apa yang dilihat parser sebagai sumber literal, ikuti teks dan muatan ke tujuannya, dan beri nama bacaan API yang ditampilkan. Untuk html yang lolos dari pencegahan xss, run tetap menjadi bukti yang terikat parser.

Contoh praktis: payload lolos dan tidak lolos — dua sumber halaman dan dua hasil

Contoh praktis: payload lolos dan tidak lolos — dua sumber halaman dan dua hasil. Untuk <script>alert("xss")</script>, mode minimal mengembalikan <script>alert("xss")</script>. Merendernya sebagai teks HTML akan menampilkan karakter berbentuk tag daripada membuat simpul skrip.

Perlakukan contoh muatan yang berhasil sebagai eksperimen batas. Pengembang full-stack junior yang merender nama pengguna dan komentar harus mempertahankan escape dan unescaped, melakukan satu operasi batas-XSS yang disimpan, dan memeriksa dua sumber halaman dan karakter demi karakter sebelum mengubah kedua hasil. Klaim tentang bukti batas yang disimpan-XSS berhenti di lapisan HTML ini.

Kerangka kerja yang lolos secara otomatis dan pintu keluarnya — filter 'aman', pembantu keluaran mentah, dan alat peraga gaya innerHTML, dijelaskan secara umum

Kerangka kerja yang lolos secara otomatis dan pintu keluarnya — filter 'aman', pembantu keluaran mentah, dan alat peraga gaya innerHTML, dijelaskan secara umum. Pelarian otomatis kerangka kerja sangat berharga sampai pembantu keluaran mentah, filter aman, atau API gaya innerHTML menonaktifkannya. Pintu keluar seperti itu mengalihkan tanggung jawab kepada penelepon dan layak mendapatkan audit yang sempit.

Reproduksi kerangka kerja yang lolos secara otomatis dan dengan masukan yang tidak berbahaya, bukan materi pelanggan. Catat pintu keluarnya dengan aman, amati filter pembantu keluaran mentah, dan hitung setiap lintasan batas-XSS yang sengaja disimpan. Jejak pencegahan xss yang lolos dari html memungkinkan pengembang full-stack junior merender nama pengguna dan komentar mengevaluasi dan alat peraga gaya innerhtml dan dijelaskan secara umum tanpa menebak-nebak.

Melarikan diri itu perlu, tetapi tidak cukup — atribut, URL, dan konteks skrip memerlukan aturannya sendiri

Melarikan diri itu perlu, tetapi tidak cukup — atribut, URL, dan konteks skrip memerlukan aturannya sendiri. Melarikan diri dari teks HTML hanya diperlukan untuk konteks parser tersebut. URL memerlukan kebijakan skema dan pengkodean komponen; JavaScript dan CSS memerlukan serializernya sendiri; SQL memerlukan kueri berparameter.

Pelarian tempat tidak diperlukan, url atribut yang memadai dan, serta konteks skrip memerlukannya berdampingan selama peninjauan batas-XSS yang disimpan. Pengembang full-stack junior yang merender nama pengguna dan komentar kemudian dapat memutuskan apakah aturannya berubah pada saat konversi atau downstream. Jauhkan html yang lolos dari kesimpulan pencegahan xss tentang bukti batas yang disimpan-XSS dari klaim keamanan umum.

Hal yang tidak tercakup dalam hal ini — Desain Kebijakan Keamanan Konten, DOM-berdasarkan XSS dan perpustakaan pembersih

Hal yang tidak tercakup dalam hal ini — Desain Kebijakan Keamanan Konten, DOM-berdasarkan XSS dan perpustakaan pembersih. Diskusi ini tidak mengklaim liputan DOM-berdasarkan XSS, CSP pemilihan desain atau pembersih. Pengkodean teks dan sanitasi markup yang dibuat pengguna adalah kontrol berbeda dengan keluaran berbeda.

Tentukan apa yang tidak dilakukan sebelum menjalankan batas tersimpan-XSS. Simpan kebijakan keamanan konten sampul sebagai kontrol, periksa titik kode di belakang xss berbasis dom desain, dan petakan serta pustaka pembersih ke penerjemah berikutnya. Hal ini membuat bukti batas yang disimpan-XSS dapat diaudit untuk pengembang full-stack junior yang merender nama pengguna dan komentar yang menyelidiki html yang lolos dari pencegahan xss.

Kesimpulan: escape setiap string yang tidak dipercaya pada keluaran — bagaimana escaper entitas HTML menunjukkan dengan tepat seperti apa formulir yang di-escape, sehingga Anda dapat memeriksa apa yang seharusnya dihasilkan oleh templat Anda

Kesimpulan: escape setiap string yang tidak tepercaya pada keluaran — bagaimana escaper entitas HTML menunjukkan dengan tepat seperti apa formulir yang di-escape, sehingga Anda dapat memeriksa apa yang seharusnya dihasilkan oleh templat Anda. Gunakan utilitas ini sebagai referensi transparan untuk mengetahui seperti apa pelolosan lima karakter HTML. Ini menunjukkan langkah pengkodean keluaran, bukan keputusan pertahanan atau kepercayaan XSS yang lengkap.

Hubungkan pelarian takeaway setiap tidak tepercaya ke keluaran batas-XSS yang dapat diamati. Pertahankan string pada output bagaimana di samping hasil sekali jalan, lalu verifikasi di mana escaper entitas html masuk menunjukkan kepada Anda apa yang sebenarnya. Pengembang full-stack junior yang merender nama pengguna dan komentar sekarang dapat meninjau tampilan formulir yang di-escape sebagai html sempit yang lolos dari temuan pencegahan xss. Keputusan praktis di balik artikel ini bersifat spesifik: Sebagian besar skrip lintas situs disebabkan oleh satu jalan keluar yang hilang. Posting ini mengikuti nama pengguna yang berisi tag skrip dari database ke halaman, menunjukkan dengan tepat di mana pelolosan menghentikannya, dan di mana switch 'aman' kerangka kerja membatalkan perlindungan. Tindakan pembaca juga sama konkritnya: Menautkan ke escaper entitas HTML dan mendemonstrasikan pelolosan muatan tag-skrip sehingga pembaca dapat membandingkannya dengan keluaran templat mereka.