Ce sunt entitățile HTML

HyperText Markup Language, sau HTML, este limba principală pentru paginile web de pe internet. Include suport pentru o serie de alte limbi care adaugă funcționalități suplimentare și stil, cum ar fi JavaScript și CSS. Toate aceste limbi sunt bazate pe text, cu unele caractere semnificative folosite pentru a separa șirurile literale care ar trebui tipărite în browser și codul care ar trebui interpretat și executat.

Cu toate acestea, acest design are unele probleme, acestea devin evidente atunci când doriți să imprimați unul dintre caracterele semnificative în browser. Cele mai bune exemple de caractere de utilizat sunt simbolurile „mai puțin decât” și „mai mare decât”. Respectiv, aceste simboluri sunt folosite pentru a deschide și închide segmente de cod în HTML. Metoda corectă de imprimare a acestor caractere pe ecran în siguranță este utilizarea entităților HTML.

Entități HTML și securitate

Datorită faptului că aceste caractere au o semnificație specială, trebuie să fii foarte atent să te asiguri că le înlocuiești cu versiunea entității HTML dacă vrei să fie tipărite în browser. Din păcate, mulți dezvoltatori web uită că utilizatorii pot trimite informații către multe site-uri web. Dacă această intrare de utilizator include caractere semnificative și nu sunt înlocuite cu entități HTML, într-un proces numit dezinfectare, atunci site-ul web are o vulnerabilitate Cross-Site Scripting (XSS).

Sfat: Nu încercați să trimiteți caractere speciale pe site-uri web în încercarea de a găsi vulnerabilități XSS. A face acest lucru este din punct de vedere tehnic hacking și este o infracțiune, cu excepția cazului în care aveți permisiunea proprietarului site-ului.

Cum funcționează entitățile HTML (și uneori nu)

Entitățile HTML funcționează deoarece browserul știe să îl afișeze ca caracter special relevant și să nu îl trateze ca pe un caracter special. Toate entitățile HTML încep cu un „&” și se termină cu un punct și virgulă „;”. Majoritatea caracterelor sunt identificate printr-un număr de entitate, deși unele caractere speciale au și un nume prescurtat. De exemplu, „&”, „” au numerele de entități „&”, „”, precum și numele de entități „&”, „”. Browserul știe că aceste șiruri înseamnă că trebuie să afișeze caracterele relevante.

Sfat: o listă completă de nume de entități de caractere poate fi găsită Aici, deși suportul pentru numele entității variază în funcție de browser.

În cele mai multe cazuri, utilizatorii ar trebui să vadă doar caracterele pe care le reprezintă entitățile HTML. Este posibil, totuși, să vedeți caractere codificate, de obicei și „&”, printr-un proces numit „Codificare dublă”. Acest lucru se întâmplă pe măsură ce caracterul ampersand apare în propria sa versiune codificată. Codificarea dublă are loc în general atunci când intrarea este codificată corect, așa cum este transmisă, cu toate acestea, atunci când este scoasă, este igienizat din nou. Acest lucru are ca rezultat codificarea ampersand de la începutul „&” a doua oară și aparând ca „&”, browserul apoi interpretează corect asta ca un șir care ar trebui tipărit ca „&” după ce a decodat entitatea HTML și a ignorat parțial entitate.