Encoder dan decoder entitas HTML
Konversi karakter khusus ke entitas HTML dan sebaliknya, sepenuhnya di klien. Tiga mode โ hanya khusus, semua non-ASCII, atau hanya numerik โ dengan encoding idempoten.
Apa itu entitas HTML?
Entitas HTML adalah escape sequence yang merepresentasikan karakter reserved atau non-ASCII dalam HTML. Lima yang paling umum โ & < > " ' โ harus dientitas agar browser tidak menafsirkannya sebagai markup. Entitas memungkinkan menyertakan code point Unicode apa pun.
Named vs numerik
Entitas named seperti & atau © lebih mudah dibaca tapi terbatas ~250 karakter. Entitas numerik & (desimal) atau & (heks) bekerja untuk semua code point Unicode dan didukung universal. Jika ragu โ atau dalam XML โ gunakan numerik.
Kapan harus escape HTML?
Selalu escape teks dari pengguna sebelum menyisipkan ke HTML โ komentar, pencarian, profil, pesan error. Melewati langkah ini adalah bug XSS paling umum. Template engine dan framework modern melakukannya otomatis; concatenation mentah tidak.
Butuh encoding URL? Coba encoder / decoder URL.
Penggunaan Umum
- Mencegah XSS: Escape komentar, profil, dan pencarian pengguna sebelum render di HTML untuk memblokir injeksi script.
- Keamanan template email: Encode field dinamis di email transaksional agar klien HTML me-render sebagai teks, bukan markup.
- Static site builder: Pra-encode konten dari markdown saat build agar HTML hasil bebas XSS.
- Migrasi JSON ke HTML: Konversi field API dengan metakarakter HTML menjadi entitas sebelum ditempel ke template server-side.
- Logging dan debugging: Encode payload mentah sebelum ditulis ke log viewer HTML.
- Cuplikan dokumentasi: Tampilkan markup HTML literal di blok <code> dengan mengentitas tanda kurung sudut.
- Migrasi CMS legacy: Decode konten terentitas dari CMS lama kembali ke teks biasa.
FAQ
Apa itu entitas HTML dan mengapa saya membutuhkannya?
Mereka adalah escape sequence yang merepresentasikan karakter reserved (& < > " ') dan semua non-ASCII tanpa merusak parsing HTML.
Named vs numerik โ mana yang dipakai?
Pakai numerik (&, &) untuk konteks non-HTML โ XML, RSS, SGML. Pakai named (&, ©) di HTML tulis tangan yang mengutamakan keterbacaan.
Kapan saya harus escape HTML di konten pengguna?
Selalu โ kecuali Anda eksplisit pakai sanitizer dengan whitelist (mis. DOMPurify). Concatenation langsung tanpa escape adalah kerentanan XSS klasik.
Bagaimana decode ' dan '?
Keduanya decode ke apostrof ('). Decoder ini menerima named ', desimal ', dan heks '.
Apakah alat ini mengirim data saya ke mana pun?
Tidak. Semua encoding dan decoding berjalan sepenuhnya di browser Anda. Teks Anda tidak pernah meninggalkan perangkat.
Dalam Angka
- HTML Living Standard mendefinisikan ~250 referensi karakter bernama โ kebanyakan browser juga menerima set HTML 4.01 lama
- OWASP merekomendasikan escape lima karakter (
&,<,>,",') saat menyisipkan teks tak tepercaya ke body HTML - Referensi numerik (mis.
&) bekerja untuk semua code point Unicode โ berguna saat entitas bernama tidak tersedia - XML hanya mendukung lima entitas bernama (
amp lt gt quot apos) โ parser XML ketat menolak entitas HTML seperti©