Skip to main content
CheckTown
Convertitori

Codifica delle entità HTML: Previeni XSS e visualizza caratteri speciali

Pubblicato 5 min di lettura
In questo articolo

Cosa sono le entità HTML?

Le entità HTML sono codici speciali che rappresentano caratteri con un significato particolare in HTML o che non possono essere digitati direttamente. Ad esempio, &lt; è l'entità HTML per il carattere < (segno minore-di), che altrimenti verrebbe interpretato come l'inizio di un tag HTML.

Le entità possono essere nominali (&lt;, &amp;, &copy;) o numeriche (&#60;, &#38;). Le entità nominali sono più leggibili; quelle numeriche funzionano per qualsiasi carattere Unicode anche senza un'entità nominale specifica.

Come funziona la codifica delle entità HTML

Il codificatore analizza il testo alla ricerca di caratteri da eseguire l'escape e li sostituisce con le corrispondenti entità HTML.

  • Escape critici — < > & " ' vengono sempre sottoposti a escape per prevenire iniezioni HTML e XSS
  • Escape esteso — codifica opzionalmente tutti i caratteri non ASCII come entità numeriche
  • Modalità decodifica — converte l'HTML con entità codificate in testo normale per l'ispezione

Prova gratuitamente — nessuna registrazione richiesta

Codifica entità HTML →

Quando usare la codifica delle entità HTML

La codifica delle entità HTML è fondamentale per la sicurezza e per visualizzare caratteri speciali nelle pagine web.

  • Visualizzazione di contenuti utente — codifica sempre i contenuti generati dagli utenti prima di renderizzarli in HTML per prevenire attacchi XSS
  • Template email — codifica i caratteri speciali nei template HTML delle email per garantire una resa corretta
  • Documentazione — applica l'escape agli esempi di codice nella documentazione HTML affinché le parentesi angolari vengano visualizzate correttamente

Domande frequenti

Cos'è XSS e come la codifica delle entità lo previene?

Il Cross-Site Scripting (XSS) è un attacco in cui script dannosi vengono iniettati in pagine web visualizzate da altri utenti. Se un utente invia <script>alert('xss')</script> e questo viene renderizzato come HTML, lo script viene eseguito. La codifica delle entità converte < in &lt; facendolo visualizzare come testo e impedendone l'esecuzione.

Quando devo usare &amp; al posto di & in HTML?

Negli attributi e nel contenuto HTML, & deve essere codificato come &amp; ogni volta che non fa parte di un'entità HTML. Una & non codificata in HTML costituisce un errore di parsing. Negli URL all'interno degli attributi href, & deve essere codificato come &amp; per produrre HTML valido (anche se i browser sono tolleranti in proposito).

La codifica delle entità HTML protegge dall'SQL injection?

No. La codifica delle entità HTML protegge solo dall'iniezione HTML (XSS). Per prevenire SQL injection, utilizza query parametrizzate o prepared statement nel livello database. Si tratta di vettori di attacco distinti che richiedono difese diverse — non fare mai affidamento sulla codifica HTML per prevenire SQL injection.

Strumenti correlati