Mis on HTML-üksused

Hüperteksti märgistuskeel ehk HTML on Interneti veebilehtede peamine keel. See sisaldab tuge paljudele teistele keeltele, mis lisavad täiendavaid funktsioone ja stiili, nagu JavaScript ja CSS. Kõik need keeled on tekstipõhised ja mõnede tähenduslike märkide abil eraldatakse brauserisse printitavad stringid ja kood, mida tuleks tõlgendada ja käivitada.

Sellel kujundusel on siiski mõned probleemid, mis ilmnevad siis, kui soovite brauserisse printida ühe tähendusrikka tähemärgi. Parimad näidismärgid on sümbolid "vähem kui" ja "suurem kui". Vastavalt kasutatakse neid sümboleid HTML-i koodisegmentide avamiseks ja sulgemiseks. Õige meetod nende märkide turvaliseks ekraanile printimiseks on HTML-i olemite kasutamine.

HTML-üksused ja turvalisus

Tänu neile eritähenduslikele märkidele peate olema väga ettevaatlik ja veenduma, et asendate need HTML-i olemi versiooniga, kui soovite, et need brauserisse prinditaks. Kahjuks unustavad paljud veebiarendajad, et kasutajad saavad paljudele veebisaitidele sisendit esitada. Kui see kasutajasisend sisaldab tähenduslikke märke ja neid ei asendata desinfitseerimise protsessis HTML-i olemitega, on veebisaidil saidiülese skriptimise (XSS) haavatavus.

Näpunäide. Ärge proovige XSS-i haavatavuste leidmiseks veebisaitidele erimärke lisada. See on tehniliselt häkkimine ja on kriminaalkuritegu, välja arvatud juhul, kui teil on veebisaidi omaniku luba.

Kuidas HTML-üksused töötavad (ja mõnikord mitte)

HTML-üksused töötavad, kuna brauser teab, et kuvab seda asjakohase erimärgina ja ei käsitle seda erimärgina. Kõik HTML-i olemid algavad ampersandiga "&" ja lõpevad semikooloniga ";". Enamik märke tuvastatakse olemi numbri järgi, kuigi mõnel erimärgil on ka lühendatud nimi. Näiteks "&", "" on olemi numbrid "&", "" ning olemi nimed vastavalt "&", "". Brauser teab, et need stringid tähendavad, et ta peab kuvama asjakohaseid märke.

Näpunäide: leiate tähemärkide olemite nimede täieliku loendi siin, kuigi olemi nime tugi erineb brauseriti.

Enamikul juhtudel peaksid kasutajad nägema ainult neid märke, mida HTML-üksused esindavad. Siiski on võimalik näha kodeeritud märke, tavaliselt ampersand "&", kasutades protsessi nimega "Topeltkodeering". See juhtub siis, kui ampersandi märk ilmub oma kodeeritud versioonis. Topeltkodeerimine toimub tavaliselt siis, kui sisend on õigesti kodeeritud, kuna see esitatakse, kuid kui see väljastatakse, desinfitseeritakse see uuesti. Selle tulemusel kodeeritakse "&" alguses olev ampersand teist korda ja kuvatakse kui "&", seejärel brauser tõlgendab seda õigesti stringina, mis tuleks trükkida kui "&", olles dekodeerinud HTML-i olemi ja ignoreerinud osalist üksus.