HyperText Markup Language, o HTML, és el llenguatge principal per a pàgines web a Internet. Inclou suport per a altres idiomes que afegeixen funcionalitats i estils addicionals, com ara JavaScript i CSS. Tots aquests llenguatges es basen en text amb alguns caràcters significatius utilitzats per separar cadenes literals que s'han d'imprimir al navegador i codi que s'ha d'interpretar i executar.
Aquest disseny té alguns problemes, però, aquests es fan evidents quan voleu imprimir un dels caràcters significatius al navegador. Els millors exemples de caràcters per utilitzar són els símbols "menys que" i "més gran que". Respectivament, aquests símbols s'utilitzen per obrir i tancar segments de codi en HTML. El mètode correcte per imprimir aquests caràcters a la pantalla de manera segura és utilitzar entitats HTML.
Entitats HTML i seguretat
Gràcies al fet que aquests caràcters tenen un significat especial, heu de tenir molta cura d'assegurar-vos que els substituïu per la versió d'entitat HTML si voleu que s'imprimeixin al navegador. Malauradament, molts desenvolupadors web obliden que els usuaris poden enviar aportacions a molts llocs web. Si aquesta entrada de l'usuari inclou caràcters significatius i no es substitueixen per entitats HTML, en un procés anomenat desinfecció, el lloc web té una vulnerabilitat de Cross-Site Scripting (XSS).
Consell: no proveu d'enviar caràcters especials als llocs web per intentar trobar vulnerabilitats XSS. Fer-ho és tècnicament piratejar i és un delicte, tret que tingueu el permís del propietari del lloc web.
Com funcionen les entitats HTML (i de vegades no)
Les entitats HTML funcionen perquè el navegador sap mostrar-lo com el caràcter especial rellevant i no tractar-lo com un caràcter especial. Totes les entitats HTML comencen amb un "&" i acaben amb un punt i coma ";". La majoria dels caràcters s'identifiquen amb un número d'entitat, encara que alguns caràcters especials també tenen un nom abreviat. Per exemple, "&", "<" i ">" tenen els números d'entitat "&", "<" i ">", així com els noms d'entitat "&", "<" i ">" respectivament. El navegador sap que aquestes cadenes signifiquen que ha de mostrar els caràcters rellevants.
Consell: es pot trobar una llista completa de noms d'entitats de caràcters aquí , tot i que la compatibilitat amb els noms d'entitat varia segons el navegador.
En la majoria dels casos, els usuaris només haurien de veure els caràcters que representen les entitats HTML. No obstant això, és possible veure caràcters codificats, habitualment el signe "&", mitjançant un procés anomenat "Codificació doble". Això succeeix quan el caràcter i es mostra en la seva pròpia versió codificada. La doble codificació generalment es produeix quan l'entrada està codificada correctament, ja que s'envia, però, quan s'està sortint, es torna a desinfectar. Això fa que el ampersand al començament del "&" es codifique per segona vegada i aparegui com a "&", el navegador l'interpreta correctament com una cadena que s'ha d'imprimir com "&" havent descodificat l'entitat HTML i ignorada. l'entitat parcial.