and it is rendered as HTML, the script executes. Entity encoding converts < to < making it render as text, preventing script execution." } }, { "@type": "Question", "name": "When should I use & versus & in HTML?", "acceptedAnswer": { "@type": "Answer", "text": "In HTML attributes and content, & must be encoded as & whenever it is not part of an HTML entity. Unencoded & in HTML is a parsing error. In URLs within href attributes, & must also be encoded as & to be valid HTML (though browsers are forgiving)." } }, { "@type": "Question", "name": "Does HTML entity encoding protect against SQL injection?", "acceptedAnswer": { "@type": "Answer", "text": "No. HTML entity encoding only protects against HTML injection (XSS). For SQL injection prevention, use parameterized queries or prepared statements in your database layer. These are separate attack vectors requiring different defenses — never rely on HTML encoding to prevent SQL injection." } } ] }
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