Protezione e ripristino dei caratteri HTML
Converte in entità HTML i caratteri speciali — e commerciale, minore, maggiore, virgolette doppie e semplici — oppure riporta le entità ai caratteri originari. Utile contro gli attacchi di scripting fra siti e nell'inserimento di testo in una pagina.
Le principali entità HTML con nome
| Carattere | Entità con nome | Riferimento numerico | Descrizione |
|---|---|---|---|
| & | & | & | E commerciale (il segno che vale «e») |
| < | < | < | Segno di minore (lo stesso che apre un marcatore HTML) |
| > | > | > | Segno di maggiore (lo stesso che chiude un marcatore HTML) |
| " | " | " | Virgolette doppie (delimitano i valori degli attributi) |
| ' | ' | ' | Virgoletta semplice (delimita i valori degli attributi) |
| |   | Spazio unificatore (non consente l'andata a capo) | |
| © | © | © | Segno del diritto d'autore |
| ® | ® | ® | Segno di marchio registrato |
| ™ | ™ | ™ | Segno di marchio |
| € | € | € | Simbolo dell'euro |
| ¥ | ¥ | ¥ | Simbolo dello yen |
| ¢ | ¢ | ¢ | Simbolo del centesimo |
Consigli
- La protezione dei caratteri HTML è la difesa elementare contro gli attacchi di scripting fra siti: proteggete sempre quanto inserito dagli utenti prima di collocarlo in una pagina.
- La
&va protetta sempre per prima: convertendo prima gli altri caratteri, anche la&delle entità appena generate verrebbe protetta una seconda volta. - Inserendo un testo nel valore di un attributo conviene proteggere non soltanto le virgolette doppie ma anche quelle semplici.
- Lo strumento sa ripristinare i riferimenti numerici decimali, come
&, quelli esadecimali, come&, e le principali entità con nome, come&. - Molti motori di modelli proteggono automaticamente i caratteri quando espandono una variabile, ma se usate una sintassi di uscita HTML grezza dovete provvedere voi stessi.
Domande frequenti
&, <, >, " e '. Le faccine e i caratteri non ASCII si visualizzano in sicurezza così come sono negli ambienti UTF-8 di oggi e non richiedono alcuna conversione.
A proposito — i riferimenti ai caratteri, un'eredità di SGML
Le entità HTML, ossia i riferimenti ai caratteri, risalgono a SGML, il linguaggio di marcatura generalizzato da cui l'HTML discende. Standardizzato nel 1986, SGML possedeva già il meccanismo dei riferimenti ai caratteri per usare nel testo il segno di minore, che delimita i marcatori. L'HTML lo ha ereditato quasi immutato e già nelle prime specifiche degli anni Novanta definiva le entità fondamentali <, > e &.
Le entità con nome furono in origine preziose per mostrare anche in ambienti ASCII i simboli tipografici — il segno del diritto d'autore, quello di marchio registrato, le lettere greche — in un'epoca in cui Unicode non era ancora diffuso. La specifica di HTML5 ne definisce infine oltre duemila, comprendendo simboli minori come i segni di spunta e le note musicali.
Oggi, con la diffusione della codifica UTF-8, il bisogno di riferimenti ai caratteri per evitare le corruzioni è molto diminuito. Restano però tre caratteri da proteggere sempre, per un motivo diverso: il minore, il maggiore e la e commerciale hanno per l'analizzatore HTML un significato sintattico particolare — apertura e chiusura di marcatore, inizio di entità — e trascurarne la protezione porta dritti a impaginazioni sfasciate e a vulnerabilità di scripting fra siti.