CHIUDI ANNUNCIO

HTML Escape/Unescape

HTML Escape/Unescape

Supporta l'escape e l'unescape delle entità HTML, gestisce caratteri speciali e tag. Rileva automaticamente i formati di entità nominate e numeriche, previene attacchi XSS, adatto per visualizzare input utente, esempi di codice e elaborazione sicura dei contenuti.

Istruzioni d’uso

🚀 Avvio rapido

  • Inserisci nell’area di testo contenuto HTML o testo già escapato
  • Scegli la modalità "Codifica" o "Decodifica"
  • Fai clic sul pulsante corrispondente per eseguire la conversione; il risultato viene mostrato nello stesso riquadro
  • Fai clic su "Copia" per usare il risultato nel codice o nella UI

📌 Scenari comuni

  • Commenti utente: fai l’escape dei commenti inviati dagli utenti per prevenire XSS.
  • Articoli di blog: mostra esempi di codice HTML all’interno dei contenuti.
  • Post su forum: visualizza in sicurezza i contenuti generati dagli utenti.
  • Messaggi di chat: evita la diffusione di codice malevolo attraverso il sistema di messaggistica.
  • Dati di form: elabora e visualizza i dati inviati tramite form.
  • Visualizzazione codice: mostra snippet HTML/JavaScript nelle pagine web.

🎛️ Regole di escape e entità

  • Caratteri da escapare di solito: < > & " ' (lo slash / in genere non è obbligatorio; dipende dal contesto).
  • Come scrivere: < → &lt;, > → &gt;, & → &amp;, " → &quot;, ' → &#39;
  • Virgolette negli attributi: usa &quot; (o &#34;) per le doppie virgolette.
  • Mostrare i tag alla lettera: per visualizzare <script> come testo, usa &lt;script&gt;.
  • Gestione dei tag: scrivi <div> come &lt;div&gt; per evitare che il browser lo interpreti come tag.

🧭 Consigli d'uso

  • Escape dipendente dal contesto: scegli la strategia di escape adatta alla posizione di output (HTML, attributo, JS, CSS, URL, ecc.).
  • Elaborazione lato server: per la sicurezza critica l’escape va fatto lato server.
  • Doppio controllo: verifica il risultato dopo l’escape per assicurarti che nulla sia stato dimenticato.
  • Usa librerie collaudate: in produzione è consigliabile usare librerie mature di escape/sanitizzazione invece di soluzioni manuali.
  • Verifica visiva: dopo l’escape puoi usare gli strumenti del browser per vedere come il testo verrà mostrato.

⚠️ Limitazioni e compatibilità

  • Questo strumento non è un "sanitizer": non rimuove script/eventi/protocolli pericolosi; va usato insieme a una fase di sanitizzazione basata su whitelist.
  • Protezione incompleta: l’escape da solo non basta a prevenire tutti gli XSS; servono anche altre misure.
  • Dipendente dal contesto: contesti diversi richiedono regole diverse (contenuto HTML, attributi, JavaScript, CSS).
  • Molto testo: input di grandi dimensioni possono rendere il browser poco reattivo; valuta di dividere il contenuto.

🔒 Privacy e sicurezza

  • Tutte le elaborazioni avvengono nel tuo browser; i dati non lasciano mai il tuo dispositivo.

❓ Domande frequenti

Che cos’è un attacco XSS?

XSS (Cross‑Site Scripting) è una tecnica con cui un attaccante inietta script malevoli in pagine web per rubare dati o eseguire azioni indesiderate. L’escape corretto dell’HTML è una delle difese di base contro XSS.

Quando è necessario eseguire l’escape HTML?

Ogni volta che mostri contenuti forniti dall’utente (commenti, messaggi, campi di form, ecc.). Se il contenuto può contenere tag HTML, va escapato prima di essere reso.

Qual è la differenza tra &amp;lt; e &amp;#60;?

Entrambe rappresentano il carattere <. &amp;lt; è un’entità nominata (lt = less‑than), &amp;#60;/&amp;#x3C; sono entità numeriche/esa. In HTML moderno l’effetto è lo stesso: per leggibilità si preferisce &amp;lt;, per scenari che richiedono codifiche generiche o cross‑linguaggio si usano &amp;#60;/&amp;#x3C;. È importante mantenere il punto e virgola finale (es. &amp;lt;); se manca, il parser potrebbe combinare l’entità con i caratteri successivi (ad esempio “&amp;notin” può essere interpretato come “&amp;not;” + “in”, risultando in “¬in”).

L’escape HTML da solo può prevenire tutte le iniezioni JavaScript?

No. L’escape HTML è efficace nel contesto HTML, ma in JavaScript, CSS, URL ecc. servono regole diverse (escape di stringhe JS, percent‑encoding in URL, ecc.).

Perché a volte vedo sequenze come &amp;amp;lt; (doppio escape)?

Perché il contenuto è stato escapato due volte. La prima volta < diventa &amp;lt;, la seconda &amp; viene ulteriormente escapata in &amp;amp;, producendo &amp;amp;lt;. È importante evitare di applicare l’escape a dati già escapati.

Come permettere solo alcuni tag HTML ritenuti sicuri?

In questi casi serve "sanitizzazione" invece del solo escape: si usa una whitelist di tag/attributi ammessi e si filtrano protocolli pericolosi. Spesso si mantiene un set ridotto come p/br/ul/ol/li/a/strong/em/code/pre/blockquote/h1–h3; per a si limitano href/title/target con protocolli http/https/mailto/tel; per img solo src/alt; si rimuovono style e tutti gli eventi on*. È consigliato usare librerie come DOMPurify/sanitize‑html e fare la sanitizzazione lato server; non inserire mai contenuti non sanitizzati in innerHTML/dangerouslySetInnerHTML, per puro testo usare textContent.