Vai al contenuto principale
riqo.ioStrumenti per grandi idee

Codifica e decodifica entità HTML

Codifica caratteri come entità HTML o decodifica riferimenti a entità in testo.

Operazione

Nota

Questo tool non sanitizza HTML e non offre protezione XSS.

Risultato

Descrizione

Esegue soltanto trasformazioni testuali tramite regole HTML entity. Non analizza il DOM, non sanitizza HTML e non protegge automaticamente da XSS.

Istruzioni

Scegli Codifica per trasformare caratteri speciali oppure Decodifica per risolvere entità. Tratta sempre l'output come testo finché non viene validato nel contesto dell'applicazione.

Casi d’uso

Leggere entità HTML

Preparare esempi testuali HTML

Confrontare testo codificato e decodificato

Esempi

Caratteri speciali

Input

<tag>

Output

&lt;tag&gt;

Domande frequenti

È un sanitizer HTML?

No. Non rimuove markup pericoloso e non costituisce protezione XSS.

Posso inserire l'output direttamente nel DOM?

Solo applicando le normali regole di escaping e sanitizzazione richieste dal contesto.

Guida di approfondimento

HTML entities, escaping e sicurezza del markup

Entità HTML, riferimenti numerici, escaping contestuale, sanitization e relazione con la prevenzione XSS.

Perché esistono i character reference

HTML usa alcuni caratteri come parte della sintassi del markup. I character reference permettono di rappresentare caratteri quando la forma letterale sarebbe ambigua, scomoda o non disponibile, usando nomi come &amp; oppure riferimenti numerici.

Non ogni carattere deve essere trasformato in entity. HTML moderno gestisce Unicode direttamente; le entity sono soprattutto necessarie per caratteri con ruolo sintattico o per rappresentazioni convenzionali.

Named e numeric references

Le named character references associano nomi definiti dallo standard a caratteri o sequenze; i riferimenti numerici usano il code point in decimale o esadecimale. Entrambe le forme vengono risolte dal parser HTML nel testo risultante.

Il riferimento numerico riguarda un code point Unicode, non i byte UTF-8 con cui il documento viene trasmesso. Encoding del file e sintassi delle entity sono livelli distinti.

Escaping dipende dal contesto

Testo HTML, valori di attributo, URL, CSS e JavaScript embedded hanno grammatiche diverse. L'escaping corretto deve conoscere il contesto di output: una sostituzione adatta a un text node può essere insufficiente o sbagliata dentro uno script.

Per questo i template engine sicuri applicano escaping contestuale. Disattivare l'auto-escaping o concatenare manualmente markup con input non fidato aumenta il rischio di interpretazione come codice.

Escaping e sanitization

Escaping tratta dati come testo all'interno di un contesto specifico. Sanitization, invece, riceve markup potenzialmente attivo e rimuove o limita elementi, attributi e URL secondo una policy.

Se un'applicazione vuole consentire un sottoinsieme di HTML prodotto dagli utenti, non basta sostituire < e >. Serve un sanitizer HTML robusto e aggiornato che lavori sulla struttura analizzata.

XSS e confini di fiducia

Cross-site scripting nasce quando dati controllabili da un attaccante raggiungono un contesto eseguibile nel browser. La prevenzione richiede output encoding contestuale, sanitization quando si accetta HTML e API che evitino sink pericolosi.

Le entity non sono un filtro di sicurezza universale: un valore può essere sicuro come testo e pericoloso se successivamente decodificato o inserito in un altro contesto. Segui l'intero percorso dei dati.

Best practice

Mantieni UTF-8 end-to-end, lascia l'escaping al framework quando possibile e non eseguire decode/encode ripetuti senza un contratto chiaro. Testa caratteri speciali, virgolette, ampersand e input Unicode ai confini.

Quando il requisito è mostrare testo, usa primitive che producono text node. Quando devi accettare markup, definisci una allowlist e usa librerie di sanitization mature invece di espressioni regolari o sostituzioni ad hoc.

Apri la guida completa