Codificatore di entità HTML
Proteggi un testo in entità HTML perché i caratteri della marcatura sopravvivano, nel tuo browser.
Gira interamente nel tuo browser. Non viene caricato, registrato o salvato niente.
Cinque caratteri non possono comparire letteralmente in HTML senza cambiare il significato della marcatura: la e commerciale, le due parentesi angolari e i due tipi di virgolette. Proteggerli è quello che trasforma un pezzo di testo in un pezzo di testo che un browser mostrerà invece di obbedirgli.
Come funziona
Il modo minimo protegge solo quei cinque caratteri. È la scelta giusta quasi sempre: se la tua pagina è UTF-8 e i tuoi file sono UTF-8, una lettera accentata non ha bisogno di protezione e proteggerla rende il sorgente più difficile da leggere senza alcun guadagno.
Le entità con nome sostituiscono tutti i caratteri a cui HTML 4.01 dà un nome — 252 in tutto, é come é, © come ©. Usale quando il risultato deve passare attraverso qualcosa che rovina tutto ciò che sta sopra ASCII, come un vecchio sistema di posta o una colonna di database con la collazione sbagliata.
I riferimenti numerici danno la stessa garanzia per punto di codice invece che per nome, quindi funzionano con qualsiasi carattere e non solo con i 252 che hanno un nome. Si scrivono in esadecimale con il punto e virgola di chiusura, che qualsiasi analizzatore accetta.
Esempi
| Caso | Dati inseriti | Risultato |
|---|---|---|
| Un tag da mostrare, non da eseguire | <script>alert(1)</script> | <script>alert(1)</script> |
| Una e commerciale dentro un valore | Tom & Jerry | Tom & Jerry |
| Una lettera accentata, con nome | café | café |
Domande frequenti
Proteggere qui basta a rendere sicuro l'input di un utente?
Per il testo tra i tag, e per il valore di un attributo tra virgolette, sì: anche le virgolette vengono protette. Altrove no: un valore che finisce in un URL, in un blocco di stile o in un blocco di script ha bisogno della propria protezione, e le entità HTML sono lo strumento sbagliato per tutti e tre. Proteggi al punto di uscita, nel contesto di quell'uscita, nel tuo codice, e non incollando il testo in una pagina web.
Perché l'apostrofo viene protetto come ' e non come '?
' non è in HTML 4.01. È stato aggiunto in XHTML e poi in HTML5, e i browser vecchi lo mostrano letteralmente. La forma numerica ha sempre funzionato ovunque.
Quali entità con nome sono supportate?
Le 252 di HTML 4.01. HTML5 ne definisce circa duemila in più, quasi tutte matematiche, e qui non sono comprese. Tutto quello che non ha un nome in quell'insieme resta com'è nel modo con nome, o viene protetto per punto di codice nel modo numerico.
Serve proteggere gli accenti su un sito moderno?
No. Se la pagina dichiara UTF-8 e il file è salvato come UTF-8, é è semplicemente é. Le entità con nome servono a far passare un testo attraverso sistemi che non sono puliti in UTF-8.
Da sapere
- Tutto avviene nel tuo browser. Quello che incolli non viene caricato, registrato o salvato.