Što su HTML entiteti

click fraud protection

HyperText Markup Language, ili HTML, primarni je jezik za web stranice na internetu. Uključuje podršku za brojne druge jezike koji dodaju dodatnu funkcionalnost i stil kao što su JavaScript i CSS. Svi ovi jezici temelje se na tekstu s nekim smislenim znakovima koji se koriste za odvajanje literalnih nizova koji bi trebali biti ispisani u pregledniku i koda koji bi trebao biti interpretiran i izvršen.

Ovaj dizajn ipak ima nekih problema, koji postaju očiti kada želite ispisati jedan od značajnih znakova u pregledniku. Najbolji primjeri znakova za korištenje su simboli "manje od" i "veće od". Ovi simboli se koriste za otvaranje i zatvaranje segmenata koda u HTML-u. Ispravna metoda sigurnog ispisa ovih znakova na zaslon je korištenje HTML entiteta.

HTML entiteti i sigurnost

Zahvaljujući tim znakovima koji imaju posebno značenje, morate biti jako oprezni da biste bili sigurni da ih zamijenite verzijom HTML entiteta ako želite da se ispisuju u preglednik. Nažalost, mnogi web programeri zaboravljaju da korisnici mogu poslati unos na mnoge web stranice. Ako ovaj korisnički unos uključuje smislene znakove i oni nisu zamijenjeni HTML entitetima, u procesu koji se zove sanitetizacija, tada web stranica ima ranjivost Cross-Site Scripting (XSS).

Savjet: ne pokušavajte slati posebne znakove na web-mjesta u pokušaju da pronađete XSS ranjivosti. To je tehnički hakiranje i kazneno je djelo osim ako nemate dopuštenje vlasnika web stranice.

Kako HTML entiteti rade (a ponekad ne rade)

HTML entiteti rade jer preglednik zna prikazati ga kao relevantni poseban znak i ne tretira ga kao poseban znak. Svi HTML entiteti počinju ampersandom "&" i završavaju točkom zarezom ";". Većina znakova identificirana je brojem entiteta, iako neki posebni znakovi imaju i skraćeni naziv. Na primjer, “&”, “” imaju brojeve entiteta “&”, “”, kao i nazive entiteta “&”, “”. Preglednik zna da ti nizovi znače da mora prikazati relevantne znakove.

Savjet: može se pronaći potpuni popis naziva entiteta znakova ovdje, iako podrška za naziv entiteta varira ovisno o pregledniku.

U većini slučajeva korisnici bi trebali vidjeti samo znakove koje predstavljaju HTML entiteti. Međutim, moguće je vidjeti kodirane znakove, obično ampersand "&", kroz proces koji se naziva "Dvostruko kodiranje". To se događa kada se znak ampersanda pojavljuje u vlastitoj kodiranoj verziji. Dvostruko kodiranje općenito se događa kada je ulaz ispravno kodiran, dok se šalje, međutim, kada se izlazi, ponovno se dezinficira. To rezultira time da se ampersand na početku znaka "&" kodira drugi put i pojavljuje kao "&", zatim preglednik ispravno tumači to kao niz koji bi trebao biti ispisan kao "&" nakon što je dekodirao HTML entitet i zanemario djelomični entiteta.