Kas yra HTML subjektai

Hiperteksto žymėjimo kalba arba HTML yra pagrindinė interneto tinklalapių kalba. Tai apima daugelio kitų kalbų, kurios prideda papildomų funkcijų ir stiliaus, palaikymą, pvz., JavaScript ir CSS. Visos šios kalbos yra pagrįstos tekstu, o kai kurie reikšmingi simboliai naudojami atskirti pažodines eilutes, kurios turėtų būti spausdinamos naršyklėje, ir kodą, kuris turėtų būti interpretuojamas ir vykdomas.

Tačiau šis dizainas turi tam tikrų problemų, kurios tampa akivaizdžios, kai norite išspausdinti vieną iš reikšmingų simbolių naršyklėje. Geriausi simbolių pavyzdžiai yra simboliai „mažiau nei“ ir „didesnis nei“. Atitinkamai šie simboliai naudojami kodo segmentams atidaryti ir uždaryti HTML. Tinkamas būdas saugiai spausdinti šiuos simbolius ekrane yra naudoti HTML objektus.

HTML subjektai ir sauga

Kadangi šie simboliai turi ypatingą reikšmę, turite būti labai atsargūs, kad įsitikintumėte, jog juos pakeisite HTML objekto versija, jei norite, kad jie būtų atspausdinti naršyklėje. Deja, daugelis žiniatinklio kūrėjų pamiršta, kad vartotojai gali pateikti informaciją daugelyje svetainių. Jei ši naudotojo įvestis apima prasmingus simbolius ir jie nepakeisti HTML objektais, taikant procesą, vadinamą dezinfekavimu, tada svetainėje yra Cross-Site Scripting (XSS) pažeidžiamumas.

Patarimas: nemėginkite svetainėse pateikti specialiųjų simbolių, bandydami rasti XSS pažeidžiamumą. Tai yra techninis įsilaužimas ir yra baudžiamasis nusikaltimas, nebent turite svetainės savininko leidimą.

Kaip veikia HTML subjektai (o kartais ne)

HTML subjektai veikia, nes naršyklė žino, kad jis turi būti rodomas kaip atitinkamas specialusis simbolis, o ne traktuoti kaip specialus simbolis. Visi HTML objektai prasideda ampersandu „&“ ir baigiasi kabliataškiu „;“. Dauguma simbolių identifikuojami pagal objekto numerį, nors kai kurie specialieji simboliai taip pat turi trumpinį pavadinimą. Pavyzdžiui, „&“, „“ turi objektų numerius „&“, „“, taip pat objektų pavadinimus „&“, „“. Naršyklė žino, kad šios eilutės reiškia, kad ji turi rodyti atitinkamus simbolius.

Patarimas: galima rasti visą simbolių objektų pavadinimų sąrašą čia, nors objekto pavadinimo palaikymas skiriasi priklausomai nuo naršyklės.

Daugeliu atvejų vartotojai turėtų matyti tik tuos simbolius, kuriuos reprezentuoja HTML objektai. Tačiau naudojant procesą, vadinamą „dviguba kodavimu“, galima pamatyti užkoduotus simbolius, dažniausiai ampersandą „&“. Taip nutinka, kai ampersando simbolis pasirodo jo užkoduotoje versijoje. Dvigubas kodavimas paprastai įvyksta, kai įvestis yra teisingai užkoduota, kaip ji yra pateikta, tačiau, kai ji išvedama, ji vėl išvaloma. Dėl to „&“ pradžioje esantis ampersandas bus užkoduotas antrą kartą ir rodomas kaip „&“, tada naršyklė teisingai interpretuoja tai kaip eilutę, kuri turėtų būti atspausdinta kaip „&“, iššifravus HTML objektą ir ignoruojant dalinį subjektas.