0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
Impostazioni
Codifica e decodifica le entità HTML. Essential codifica solo i 5 caratteri che rompono l'HTML: & < > " ' . Extended codifica anche tutti i caratteri non ASCII. Scegli tra entità nominate (&), decimali (& ) oppure esadecimale (&#x26;).
Funzionamento
Ambito
Formato
0

Come funziona

Le entità HTML rappresentano caratteri che hanno un significato speciale nel markup (< > & " ') o che non sono ASCII, mediante sequenze come &lt;, &amp; o &#169;. Così il browser li mostra come testo anziché interpretarli come codice.

Ci sono tre formati equivalenti: con nome (&copy;), decimale (&#169;) ed esadecimale (&#xA9;). Tutti e tre producono lo stesso carattere; quello con nome è più leggibile ma esiste solo per un insieme noto.

L'ambito "essenziale" fa l'escape solo dei caratteri che rompono l'HTML (& < > " '); l'ambito "tutti" fa l'escape anche di qualsiasi carattere non ASCII.

Esempi

<a href="#">&lt;a href=&quot;#&quot;&gt;L'escape impedisce al browser di interpretare i tag e li mostra come testo.
5 < 10 & 3 > 15 &lt; 10 &amp; 3 &gt; 1
© 2024 · €&copy; 2024 · &euro;Con ambito "tutti" e formato con nome. In decimale sarebbero &#169; e &#8364;; in esadecimale, &#xA9; e &#x20AC;.

Casi d'uso

  • Mostrare codice HTML come testo in una pagina (esempi, documentazione) senza che venga renderizzato.
  • Fare l'escape dell'input dell'utente prima di inserirlo nell'HTML per prevenire l'XSS.
  • Inserire simboli speciali (©, €, →, ½) in modo portabile tra le codifiche.
  • Decodificare testo con entità copiato dal codice sorgente di una pagina.

Domande frequenti

Quale formato conviene: con nome, decimale o esadecimale?

Quello con nome (&copy;) è il più leggibile, ma copre solo i caratteri con un nome definito. Il decimale (&#169;) e l'esadecimale (&#xA9;) funzionano per qualsiasi carattere Unicode, quindi sono l'opzione sicura per i simboli poco comuni.

Codificare le entità previene gli attacchi XSS?

È una parte importante, ma l'escape va fatto in base al contesto (contenuto HTML, attributo, JavaScript o URL). Non affidarti a un solo livello: usa anche le protezioni del framework.

Quali sono i caratteri che vanno sempre sottoposti a escape?

& < e > nel contenuto, e inoltre " e ' all'interno dei valori degli attributi. L'ambito "essenziale" copre esattamente quell'insieme.

Il mio testo viene inviato a un server?

No. La codifica e la decodifica avvengono interamente nel tuo browser.