HyperText Markup Language, eða HTML, er aðaltungumál vefsíður á internetinu. Það felur í sér stuðning fyrir fjölda annarra tungumála sem bæta við auka virkni og stíl eins og JavaScript og CSS. Öll þessi tungumál eru byggð á texta með einhverjum merkingarbærum stöfum sem notaðir eru til að aðgreina bókstaflega strengi sem ætti að prenta í vafra og kóða sem ætti að túlka og keyra.
Þessi hönnun hefur þó nokkur vandamál, þau verða augljós þegar þú vilt prenta einn af mikilvægu stöfunum í vafrann. Bestu dæmistafirnir til að nota eru „minna en“ og „stærra en“ táknin. Þessi tákn eru notuð til að opna og loka kóðahlutum í HTML. Rétta aðferðin til að prenta þessa stafi á skjáinn á öruggan hátt er að nota HTML einingar.
HTML einingar og öryggi
Þökk sé því að þessir stafir hafa sérstaka merkingu þarftu að gæta þess að skipta þeim út fyrir HTML einingaútgáfuna ef þú vilt að þeir séu prentaðir í vafrann. Því miður gleyma margir vefhönnuðir að notendur geta sent inn inntak á margar vefsíður. Ef þetta notendainntak inniheldur þýðingarmikla stafi og þeim er ekki skipt út fyrir HTML einingar, í ferli sem kallast hreinsun, þá er vefsíðan með veikleika fyrir forskriftir yfir vefsvæði (XSS).
Ábending: Ekki reyna að senda sérstaka stafi á vefsíður til að reyna að finna XSS varnarleysi. Að gera það er tæknilega reiðhestur og er refsivert nema þú hafir leyfi frá eiganda vefsíðunnar.
Hvernig HTML einingar virka (og stundum ekki)
HTML einingar virka vegna þess að vafrinn veit að sýna hann sem viðkomandi sérstaf og ekki meðhöndla hann sem sérstaf. Allar HTML-einingar byrja á og-merki „&“ og enda á semípunkti „;“. Flestir stafir eru auðkenndir með eininganúmeri þó að sumir sérstafir séu einnig með styttu nafni. Til dæmis hafa „&“, „<“ og „>“ einingarnúmerin „&“, „<“ og „>“ sem og einingarnöfnin „&“, „<“ og „>“ í sömu röð. Vafrinn veit að þessir strengir þýða að hann þurfi að sýna viðeigandi stafi.
Ábending: Fullan lista yfir nöfn stafaeininga er að finna hér , þó að stuðningur einingaheita sé mismunandi eftir vafra.
Í flestum tilfellum ættu notendur aðeins alltaf að sjá stafina sem HTML einingar tákna. Það er hins vegar mögulegt að sjá kóðaða stafi, venjulega ampermerki „&“, í gegnum ferli sem kallast „Tvöföld kóðun“. Þetta gerist þegar og-merki birtist í sinni eigin kóðuðu útgáfu. Tvöföld kóðun á sér venjulega stað þegar inntak er rétt kóðað, þar sem það er sent inn, en þegar það er gefið út verður það sótthreinsað aftur. Þetta leiðir til þess að og-merki í upphafi „&“ verður kóðað í annað sinn og birtist sem „&“, vafrinn túlkar það síðan rétt sem streng sem ætti að prenta sem „&“ eftir að hafa afkóða HTML eininguna og hunsað hlutaeiningin.