DEV

Entità HTML: Come Codificare Caratteri Speciali in Sicurezza

Le entità HTML sono la difesa principale contro gli attacchi Cross-Site Scripting (XSS). Quando visualizzi contenuto generato dagli utenti in una pagina HTML, qualsiasi carattere con significato speciale in HTML deve essere convertito nella sua entità corrispondente, altrimenti il browser potrebbe interpretarlo come tag HTML o codice JavaScript.

Entità HTML Essenziali

  • &lt;< (minore di, apre un tag)
  • &gt;> (maggiore di, chiude un tag)
  • &amp;& (e commerciale, inizia un'entità)
  • &quot;" (virgolette doppie negli attributi)
  • &apos;' (apostrofo negli attributi)
  • &nbsp; → spazio non-breaking (evita la divisione di riga tra parole)

Entità vs. Encoding UTF-8

Nei documenti HTML moderni con <meta charset="UTF-8">, puoi usare direttamente i caratteri speciali come à, è, ì, ò, ù senza codificarli come entità. Le entità HTML sono necessarie solo per i cinque caratteri strutturali di HTML: < > & " '.

Prevenzione XSS con le Entità

Ogni framework web moderno (Django, Laravel, Rails, React) esegue automaticamente l'escaping HTML per l'output delle template. Tuttavia, quando usi innerHTML o dangerouslySetInnerHTML o concateni stringhe HTML manualmente, sei responsabile di fare l'escaping tu stesso. Il nostro strumento ti aiuta a testare e validare la codifica corretta.