// Escape HTML
HTML Entities Encoder / Decoder
Codifica caratteri HTML non sicuri in entità e decodifica le entità in caratteri.
Text
Escaped
HTML Entities Encoder / Decoder esempi.
// Unescape entità
Domande frequenti.
Perché fare escape dell'HTML?
Per prevenire attacchi XSS e garantire che il contenuto venga visualizzato correttamente.
Perché l’escape HTML è importante
I caratteri speciali HTML come <, >, & e gli apici singoli e doppi hanno un significato specifico nel markup. Se questi caratteri compaiono nel testo utente senza essere codificati, il browser li interpreta come tag HTML, modificando la struttura della pagina.
L’escape HTML converte questi caratteri nelle loro entità corrispondenti: < per <, > per >, & per &, " per ` e ' per ’. Questo garantisce che il testo venga visualizzato letteralmente.'
Senza un corretto escaping, il contenuto generato dagli utenti potrebbe rompere il layout della pagina o, peggio, essere interpretato come codice eseguibile dal browser.
Protezione XSS vs escaping
Lo scripting cross-site (XSS) è un attacco in cui un utente malevolo inserisce script dannosi nelle pagine web. L’escaping HTML è la prima linea di difesa contro questo tipo di vulnerabilità.
Tuttavia, l’escaping da solo non basta. È necessario combinarlo con altre tecniche come la validazione dell’input, i Content Security Policy (CSP) e il sanitization del DOM per una protezione completa.
Librerie come DOMPurify possono essere usate in combinazione con l’escaping per garantire che anche il markup HTML legittimo venga pulito da elementi potenzialmente pericolosi.
Entità denominate vs numeriche
Le entità denominate come < e & sono facili da ricordare e leggere, ma non coprono tutti i caratteri Unicode. Sono supportate solo per i caratteri più comuni.
Le entità numeriche come < e < accettano qualsiasi punto codice Unicode, rendendole più versatili. Il formato decimale < e quello esadecimale < producono lo stesso risultato.
Per massima compatibilità, usa le entità denominate quando disponibili, e le entità numeriche per tutti gli altri caratteri. Questo approccio garantisce che il contenuto sia visualizzato correttamente su tutti i browser.