A HyperText Markup Language vagy HTML az internet weboldalainak elsődleges nyelve. Számos más nyelv támogatását is tartalmazza, amelyek extra funkciókat és stílust adnak hozzá, mint például a JavaScript és a CSS. Mindezek a nyelvek szövegalapúak, és néhány értelmes karaktert használnak a böngészőbe nyomtatandó karakterláncok és az értelmezendő és végrehajtandó kódok elkülönítésére.
Ennek a kialakításnak van néhány problémája, amelyek nyilvánvalóvá válnak, ha ki akarja nyomtatni az egyik értelmes karaktert a böngészőbe. A legjobb példakarakterek a „kisebb, mint” és a „nagyobb, mint” szimbólumok. Illetve ezek a szimbólumok kódszegmensek megnyitására és bezárására szolgálnak a HTML-ben. Ezeknek a karaktereknek a képernyőre való biztonságos kinyomtatásának helyes módja a HTML entitások használata.
HTML entitások és biztonság
Köszönhetően ezeknek a karaktereknek különleges jelentésük van, nagyon óvatosnak kell lennie, és győződjön meg arról, hogy lecseréli őket a HTML entitás verziójára, ha azt szeretné, hogy kinyomtassa őket a böngészőbe. Sajnos sok webfejlesztő megfeledkezik arról, hogy a felhasználók sok webhelyhez küldhetnek be adatokat. Ha ez a felhasználói bemenet értelmes karaktereket tartalmaz, és azokat nem cserélik le HTML-entitással az úgynevezett fertőtlenítési folyamat során, akkor a webhelyen Cross-Site Scripting (XSS) biztonsági rés található.
Tipp: Ne próbáljon meg speciális karaktereket elhelyezni a webhelyeken az XSS sebezhetőségeinek megtalálása érdekében. Ez technikailag hackelésnek minősül, és bűncselekménynek minősül, hacsak nincs engedélye a webhely tulajdonosától.
Hogyan működnek a HTML-entitások (és néha nem)
A HTML entitások azért működnek, mert a böngésző tudja, hogy a megfelelő speciális karakterként jelenítse meg, és nem kezeli speciális karakterként. Minden HTML-entitás „&” jellel kezdődik, és pontosvesszővel „;” végződik. A legtöbb karaktert entitásszám azonosítja, bár néhány speciális karakternek van rövidített neve is. Például az „&”, „<” és „>” az „&”, „<” és „>” entitásszámmal, valamint az „&”, „<” és „>” entitásnevekkel rendelkezik. A böngésző tudja, hogy ezek a karakterláncok azt jelentik, hogy meg kell jelenítenie a megfelelő karaktereket.
Tipp: A karakteres entitásnevek teljes listája itt található , bár az entitásnevek támogatása böngészőnként eltérő.
A legtöbb esetben a felhasználóknak mindig csak azokat a karaktereket kell látniuk, amelyeket a HTML-entitások képviselnek. Lehetséges azonban, hogy kódolt karaktereket, általában "&" karaktereket, a "Kettős kódolás" nevű eljárással láthassunk. Ez akkor történik, amikor az „és” karakter megjelenik a saját kódolt változatában. A kettős kódolás általában akkor történik, ha a bemenet helyesen van kódolva, ahogy elküldik, azonban a kimenetkor ismét megtisztul. Ez azt eredményezi, hogy az „&” elején lévő „és” jel másodszor is kódolásra kerül, és „&”-ként jelenik meg, majd a böngésző helyesen értelmezi ezt egy karakterláncként, amelyet „&”-ként kell kinyomtatni, miután dekódolta a HTML-entitást és figyelmen kívül hagyta. a részleges entitás.