Mitä ovat HTML-entiteetit

HyperText Markup Language tai HTML on Internetin web-sivujen ensisijainen kieli. Se sisältää tuen useille muille kielille, jotka lisäävät ylimääräisiä toimintoja ja tyyliä, kuten JavaScript ja CSS. Kaikki nämä kielet ovat tekstipohjaisia, ja niissä on joitain merkityksellisiä merkkejä, joita käytetään erottamaan kirjaimelliset merkkijonot, jotka tulee tulostaa selaimeen, ja koodi, joka tulee tulkita ja suorittaa.

Tässä suunnittelussa on kuitenkin joitain ongelmia, jotka tulevat ilmeisiksi, kun haluat tulostaa jonkin merkityksellisistä merkeistä selaimeen. Parhaat esimerkkimerkit ovat "pienempi kuin"- ja "suurempi kuin"-symbolit. Vastaavasti näitä symboleja käytetään koodisegmenttien avaamiseen ja sulkemiseen HTML: ssä. Oikea tapa tulostaa nämä merkit näytölle turvallisesti on käyttää HTML-kokonaisuuksia.

HTML-entiteetit ja turvallisuus

Koska näillä merkeillä on erityinen merkitys, sinun on oltava todella varovainen ja varmistettava, että korvaat ne HTML-entiteettiversiolla, jos haluat niiden tulostuvan selaimeen. Valitettavasti monet verkkokehittäjät unohtavat, että käyttäjät voivat lähettää syötteitä monille verkkosivustoille. Jos tämä käyttäjän syöte sisältää merkityksellisiä merkkejä eikä niitä korvata HTML-kokonaisuuksilla prosessissa, jota kutsutaan desinfiointiksi, verkkosivustolla on Cross-Site Scripting (XSS) -haavoittuvuus.

Vinkki: Älä yritä lähettää verkkosivustoille erikoismerkkejä yrittääksesi löytää XSS-haavoittuvuuksia. Tämä on teknisesti hakkerointia ja on rikos, ellei sinulla ole verkkosivuston omistajan lupaa.

Miten HTML-entiteetit toimivat (ja joskus eivät)

HTML-entiteetit toimivat, koska selain osaa näyttää sen asianomaisena erikoismerkkinä eikä käsitellä sitä erikoismerkkinä. Kaikki HTML-entiteetit alkavat et-merkillä "&" ja päättyvät puolipisteeseen ";". Useimmat merkit tunnistetaan entiteettinumerolla, vaikka joillakin erikoismerkeillä on myös lyhennetyt nimet. Esimerkiksi "&", "" sisältää entiteetin numerot "&", "" sekä entiteetin nimet "&", "". Selain tietää, että nämä merkkijonot tarkoittavat, että sen on näytettävä asiaankuuluvat merkit.

Vihje: Täydellinen luettelo merkkien entiteettien nimistä löytyy tässä, vaikka kokonaisuuden nimen tuki vaihtelee selaimen mukaan.

Useimmissa tapauksissa käyttäjien tulisi nähdä vain ne merkit, joita HTML-entiteetit edustavat. On kuitenkin mahdollista nähdä koodattuja merkkejä, tavallisesti et-merkkejä "&", "kaksoiskoodauksen"-nimisen prosessin avulla. Tämä tapahtuu, kun et-merkki näkyy omassa koodatussa versiossaan. Kaksoiskoodaus tapahtuu yleensä, kun syöte on koodattu oikein, kun se lähetetään, mutta kun se lähetetään, se desinfioidaan uudelleen. Tämä johtaa siihen, että &-merkin alussa oleva et-merkki koodataan toisen kerran ja näkyy muodossa "&", selain sitten tulkitsee sen oikein merkkijonoksi, joka pitäisi tulostaa "&"-merkillä, kun se on purkaa HTML-entiteetin ja jättänyt huomiotta osittaisen kokonaisuus.