TUTUP IKLAN

Enkode/Dekode HTML

Enkode/Dekode HTML

Mendukung escape dan unescape entitas HTML, menangani karakter khusus dan tag. Mendeteksi format entitas bernama dan numerik secara otomatis, mencegah serangan XSS, cocok untuk menampilkan input pengguna, contoh kode, dan pemrosesan konten yang aman.

Panduan penggunaan

🚀 Mulai cepat

  • Masukkan konten ke dalam kotak teks (HTML atau teks yang sudah di‑escape).
  • Pilih mode "Enkode" atau "Dekode".
  • Klik tombol yang sesuai untuk mulai konversi; hasil akan muncul di kotak teks yang sama.
  • Klik tombol "Salin" untuk digunakan di kode atau tampilan.

📌 Skenario umum

  • Komentar pengguna: meng‑escape komentar yang dikirim pengguna untuk mencegah serangan XSS.
  • Artikel blog: menampilkan contoh kode HTML di dalam artikel.
  • Posting forum: menampilkan konten buatan pengguna secara aman.
  • Pesan chat: mencegah kode berbahaya menyebar lewat fitur percakapan.
  • Data formulir: memproses dan menampilkan data yang dikirim melalui formulir.
  • Tampilan kode: menampilkan cuplikan kode HTML/JavaScript di halaman web.

🎛️ Aturan & entitas HTML

  • Karakter umum: < > & " ' (garis miring / umumnya tidak wajib dienkode; bergantung konteks).
  • Format entitas: karakter khusus dikonversi ke bentuk &entitas; atau &#kode;, misalnya < menjadi < atau <.
  • Escape atribut: tanda kutip diubah menjadi " untuk melindungi nilai atribut HTML.
  • Perlindungan skrip: tag <script> yang di‑escape akan membantu mencegah injeksi JavaScript.
  • Penulisan tag: tulis <div> sebagai &lt;div&gt; agar tidak diparse sebagai elemen HTML oleh peramban.

🧭 Saran penggunaan

  • Escape berbasis konteks: pilih strategi escape yang sesuai dengan posisi output.
  • Pemrosesan sisi server: escape yang penting untuk keamanan sebaiknya dilakukan di server.
  • Periksa dua kali: setelah escape, tinjau kembali hasil untuk memastikan tidak ada yang terlewat.
  • Gunakan pustaka: di lingkungan produksi sebaiknya menggunakan pustaka escape yang matang alih‑alih menulis logika sendiri.
  • Periksa pratinjau: setelah escape, Anda dapat memeriksa tampilan sebenarnya di konsol atau pratinjau peramban.

⚠️ Batasan & kompatibilitas

  • Alat ini bukan sanitizer: tidak menghapus skrip, event, atau protokol berbahaya; tetap perlu digabung dengan sanitasi konten berbasis whitelist.
  • Perlindungan tidak sepenuhnya menyeluruh: escape saja tidak dapat menangani semua XSS, perlu dikombinasikan dengan sanitasi dan kebijakan keamanan lain.
  • Bergantung konteks: lokasi berbeda memerlukan strategi escape berbeda (konten HTML, atribut, JavaScript, CSS).
  • Teks besar: untuk menjaga peramban tetap responsif, pertimbangkan memproses dalam beberapa bagian.

🔒 Privasi & keamanan

  • Semua pemrosesan dilakukan di peramban Anda; data tidak pernah meninggalkan perangkat.

❓ Pertanyaan umum

Apa itu serangan XSS?

XSS (Cross‑Site Scripting) adalah teknik ketika penyerang menyuntikkan skrip berbahaya ke halaman web untuk mencuri informasi pengguna atau melakukan operasi berbahaya. HTML escape adalah langkah dasar untuk mengurangi risiko XSS.

Kapan saya perlu melakukan HTML escape?

Saat menampilkan konten apa pun yang berasal dari input pengguna—misalnya komentar, pesan, dan data formulir—selama konten berpotensi mengandung tag HTML, sebaiknya dilakukan escape.

Apa perbedaan antara &lt; dan &amp;#60;?

Keduanya merepresentasikan < (tanda kurang dari). &amp;lt; adalah entitas bernama (lt = less‑than), sedangkan &amp;#60;/&amp;#x3C; adalah entitas numerik/heksadesimal. Di HTML modern, keduanya berperilaku sama: gunakan &amp;lt; untuk keterbacaan yang lebih baik; gunakan &amp;#60;/&amp;#x3C; ketika tidak mendukung entitas bernama atau saat perlu merepresentasikan karakter arbitrer. Selalu pertahankan titik koma di akhir (misalnya &amp;lt;); jika hilang, parser bisa menggabungkan dengan huruf berikut dan menghasilkan teks yang salah.

Apakah escape HTML dapat mencegah semua injeksi JavaScript?

Tidak. Escape HTML hanya berlaku di konteks HTML. Di konteks JavaScript, CSS, dan URL dibutuhkan jenis escape yang berbeda.

Mengapa kadang terlihat entitas ganda seperti &amp;amp;lt;?

Itu biasanya terjadi saat konten di‑escape dua kali: pertama < diubah menjadi &amp;lt;, lalu & di‑escape lagi menjadi &amp;amp;, sehingga hasil akhir menjadi &amp;amp;lt;. Hindari melakukan escape berulang pada data yang sama.

Bagaimana cara mengizinkan sebagian tag HTML yang aman?

Gunakan pembersihan (sanitization) alih‑alih hanya escape: pertahankan hanya tag/atribut yang ada di daftar aman dan batasi protokol. Misalnya hanya membiarkan p/br/ul/ol/li/a/strong/em/code/pre/blockquote/h1–h3; untuk a hanya izinkan href/title/target (http/https/mailto/tel), untuk img hanya src/alt; hapus style dan semua event on*. Pustaka seperti DOMPurify atau sanitize‑html sangat dianjurkan, dan bila memungkinkan lakukan sanitasi di sisi server; jangan pernah memasukkan konten yang tidak dipercaya langsung ke innerHTML/dangerouslySetInnerHTML—gunakan textContent untuk teks murni.