Apa itu Enkoder/Dekoder Entitas HTML?

Encoder/decoder entitas HTML mengonversi karakter khusus seperti <, >, &, dan tanda kutip ke padanan entitas HTML-nya (dan sebaliknya). Ini mencegah kerentanan XSS saat menyematkan konten pengguna dalam HTML dan memperbaiki masalah tampilan karakter khusus.

Enkoder mengubah karakter seperti <, >, &, ", ' dan setiap titik kode Unicode menjadi entitas bernama (&amp;, &lt;), referensi numerik desimal (&#38;), atau referensi numerik heksadesimal (&#x26;). Pemilih cakupan memungkinkan Anda mengkodekan hanya lima karakter yang dipesan, semua karakter khusus, atau setiap karakter non-ASCII. Dekode membalik ketiga format tersebut. Berguna untuk membersihkan input pengguna sebelum output HTML atau memulihkan teks dari ekspor email HTML.

Cara menggunakan

  1. Langkah 1 — Tempel teks yang berisi karakter khusus atau entitas HTML.
  2. Langkah 2 — Pilih Encode untuk mengubah karakter menjadi entitas, atau Decode untuk mengubah entitas kembali menjadi karakter.
  3. Langkah 3 — Pilih format (Bernama, Desimal, atau Heksadesimal) dan cakupan untuk mengatur seberapa agresif enkode dilakukan.

Kapan menggunakan

  • Menempel contoh kode ke CMS tanpa < dan > hilang karena dianggap tag.
  • Merapikan teks dari surel HTML atau hasil scraping yang masih membawa &mdash; dan &nbsp;.
  • Meng-escape input pengguna sebelum disisipkan ke template server untuk menutup celah XSS.

Hasil

Anda perlu menampilkan cuplikan kode <div class="hero"> di dalam paragraf HTML. Encode menjadi &lt;div class=&quot;hero&quot;&gt; agar perangkat merender teks tersebut, bukan menafsirkannya sebagai markup.

FAQ

Apa beda entitas bernama dan entitas numerik?
Entitas bernama berupa singkatan yang terbaca (&copy; untuk ©). Entitas numerik memakai titik kode Unicode langsung (&#169; atau &#xA9;). Yang numerik cocok untuk semua karakter Unicode; yang bernama terbatas sekitar 250 karakter yang ditetapkan spesifikasi HTML5.
Apakah perlu meng-encode semua karakter spesial atau sebagian saja?
Di badan HTML Anda hanya perlu mengkodekan & < > dan tanda kutip yang dipakai pada nilai atribut. Pada konteks JavaScript atau URL aturan berbeda. Pemilih Cakupan menawarkan tiga pilihan: Hanya yang dipesan untuk lima karakter krusial XSS, Semua karakter khusus untuk tipografi ditambah yang dipesan, atau Semua non-ASCII untuk cakupan paling luas.
Apakah encoding merusak salin-tempel atau pembaca layar?
Tidak. Browser mendekode entitas sebelum menggambar teks, jadi pengguna melihat dan menyalin karakter asli. Pembaca layar juga menerima bentuk yang sudah didekode. Entitas adalah format pengangkut markup, bukan tampilan akhir.
Apakah encoding entitas HTML saja cukup untuk menahan XSS?
Untuk teks di badan HTML, ya. Untuk atribut, nilainya harus dikutip dan tanda kutip itu sendiri di-encode. JavaScript, CSS, dan URL punya aturan escape sendiri. Encoding hanya lapisan pertama, bukan pertahanan menyeluruh.
Kenapa sebagian entitas diawali &#x dan sebagian hanya &#?
&#x diikuti titik kode heksadesimal, &# diikuti desimal. Keduanya menunjuk karakter sama; &#xA9; dan &#169; sama-sama ©. Heksadesimal sejalan dengan notasi U+ pada tabel Unicode dan lebih ringkas untuk titik kode tinggi.

Alat terkait