Encoder / decoder HTML
Tampilkan input pengguna secara aman dengan mengonversi < ke < dan & ke &. Dekode entitas saat membaca cuplikan HTML yang disimpan kembali ke teks biasa untuk pengindeksan penelusuran. Berjalan secara lokal untuk debugging templat dan CMS.
Input
Output
Hello world
Cara menyandikan atau mendekode HTML
1. Pilih mode encode (escape) atau decode.
2. Tempel HTML atau teks biasa.
3. Salin keluaran yang lolos untuk templat atau atribut.
4. Dekode untuk membaca XML/HTML yang banyak entitasnya ekspor.
Contoh entitas HTML
Tampilan aman komentar pengguna
Input <script>alert(1)</script> menjadi teks tidak berbahaya ketika dikodekan untuk penyisipan aman innerHTML melalui node teks.
Apostrof dalam atribut
O'Reilly in title attribute encodes quote as ' or ' depending on context.
Dekode CMS ekspor
Deskripsi produk & menyalin; menerjemahkan ke & untuk diedit.
Kapan mengkodekan HTML
• Saat memasukkan teks yang tidak tepercaya ke dalam templat HTML.
• Saat melakukan debug pengkodean ganda di templat email.
• Saat menyiapkan cuplikan HTML yang menghasilkan penurunan harga.
Saat pengkodean tidak cukup
• Saat Anda perlu membersihkan HTML dengan tag yang diizinkan — gunakan pustaka gaya DOMPurify.
• Jika konten berupa string JavaScript — juga tanda kutip untuk konteks JS.
• Saat URL di href — gunakan pembuat enkode URL secara terpisah.
Konteks penting
pelolosan HTML untuk nilai atribut mungkin berbeda dari node teks — tanda kutip penting dalam atribut. Lembar contekan OWASP juga mencantumkan konteks JS dan CSS.
Bug pengkodean ganda
&amp; dalam DB berarti seseorang melakukan encode dua kali — decode sekali, perbaiki pipeline, encode sekali pada keluaran.
Email HTML
Klien berbeda-beda pada dukungan entitas - uji karakter khusus yang dikodekan di Outlook dan Gmail.
Pertanyaan yang sering diajukan
Entitas yang diberi nama vs numerik?
& vs & #38; — setara dengan karakter umum; emoji mungkin memerlukan 😀 bentuk numerik.
Mengkodekan seluruh dokumen HTML?
Mengkodekan seluruh dokumen menunjukkan tag literal — biasanya hanya mengkodekan data pengguna.
Pencegahan XSS?
Mengkodekan node teks membantu; jangan pernah menggabungkan HTML pengguna mentah. Header CSP menambah pertahanan.
Karakter UTF-8?
Sering kali dibiarkan sebagai UTF-8 dalam HTML5 modern; entitas opsional untuk non-ASCII.
Lokal?
Ya.
Output penurunan harga?
Pasangkan dengan markdownToHtml — enkode terjadi pada lapisan render di saluran yang tepat.