HyperText Markup Language, или HTML, е основният език за уеб страници в интернет. Той включва поддръжка за редица други езици, които добавят допълнителна функционалност и стил, като JavaScript и CSS. Всички тези езици са базирани на текст с някои смислени символи, използвани за разделяне на литерални низове, които трябва да бъдат отпечатани в браузъра, и код, който трябва да бъде интерпретиран и изпълнен.
Този дизайн обаче има някои проблеми, които стават очевидни, когато искате да отпечатате един от значимите знаци в браузъра. Най-добрите примерни знаци за използване са символите „по-малко от“ и „по-голямо от“. Съответно тези символи се използват за отваряне и затваряне на кодови сегменти в HTML. Правилният метод за безопасно отпечатване на тези знаци на екрана е използването на HTML обекти.
HTML обекти и сигурност
Благодарение на тези знаци, които имат специално значение, трябва да бъдете наистина внимателни, за да сте сигурни, че ги замените с версията на HTML обект, ако искате те да бъдат отпечатани в браузъра. За съжаление, много уеб разработчици забравят, че потребителите могат да изпращат информация за много уебсайтове. Ако това въведено от потребителя включва значими знаци и те не са заменени с HTML обекти, в процес, наречен саниране, тогава уебсайтът има уязвимост за междусайтови скриптове (XSS).
Съвет: Не се опитвайте да изпращате специални знаци към уебсайтове в опит да намерите уязвимости в XSS. Това е технически хакване и е престъпно престъпление, освен ако нямате разрешение от собственика на уебсайта.
Как работят HTML обектите (и понякога не)
HTML обектите работят, защото браузърът знае да го показва като съответния специален знак и да не го третира като специален знак. Всички HTML обекти започват с амперсанд „&“ и завършват с точка и запетая „;“. Повечето знаци се идентифицират с номер на обект, въпреки че някои специални знаци също имат съкратено име. Например „&“, „“ имат номерата на обекти „&“, „“, както и имената на обекти „&“, „“ съответно. Браузърът знае, че тези низове означават, че трябва да показва съответните знаци.
Съвет: Можете да намерите пълен списък с имена на обекти на знаци тук, въпреки че поддръжката на името на обекта варира в зависимост от браузъра.
В повечето случаи потребителите трябва да виждат само знаците, които представляват HTML обектите. Възможно е обаче да видите кодирани знаци, обикновено амперсанд „&“, чрез процес, наречен „Двойно кодиране“. Това се случва, когато символът амперсанд се появява в собствена кодирана версия. Двойното кодиране обикновено се случва, когато входът е правилно кодиран, тъй като е изпратен, обаче, когато се извежда, отново се дезинфекцира. Това води до това, че амперсандът в началото на „&“ се кодира втори път и се появява като „&“, а след това браузърът правилно интерпретира това като низ, който трябва да бъде отпечатан като "&", след като е декодирало HTML обекта и е игнорирало частичния субект.