Що таке HTML-об’єкти

click fraud protection

Мова розмітки гіпертексту, або HTML, є основною мовою для веб-сторінок в Інтернеті. Він включає підтримку низки інших мов, які додають додаткову функціональність і стилі, наприклад JavaScript і CSS. Усі ці мови засновані на тексті з деякими значущими символами, які використовуються для відокремлення рядків літер, які мають бути надруковані в браузері, і коду, який слід інтерпретувати та виконувати.

Однак цей дизайн має деякі проблеми, які стають очевидними, коли ви хочете надрукувати один із значущих символів у браузері. Найкращим прикладом символів для використання є символи «менше» та «більше». Відповідно ці символи використовуються для відкриття та закриття сегментів коду в HTML. Правильним методом безпечного друку цих символів на екрані є використання об’єктів HTML.

Сутності HTML і безпека

Завдяки тому, що ці символи мають особливе значення, ви повинні бути дуже обережними, щоб переконатися, що ви замінили їх версією сутності HTML, якщо ви хочете, щоб вони були надруковані у браузері. На жаль, багато веб-розробників забувають, що користувачі можуть надсилати вхідні дані для багатьох веб-сайтів. Якщо цей введений користувачем символ містить значущі символи і вони не замінюються об’єктами HTML у процесі, який називається очищенням, то веб-сайт має вразливість міжсайтових сценаріїв (XSS).

Порада: не намагайтеся надсилати спеціальні символи на веб-сайти, щоб знайти вразливості XSS. Це технічно є зломом і є кримінальним злочином, якщо у вас немає дозволу від власника веб-сайту.

Як працюють об’єкти HTML (а іноді й ні)

Сутності HTML працюють, оскільки браузер знає, що відображати їх як відповідний спеціальний символ і не розглядати як спеціальний символ. Усі сутності HTML починаються з амперсанда «&» і закінчуються крапкою з комою «;». Більшість символів ідентифікуються за номером об’єкта, хоча деякі спеціальні символи також мають скорочене ім’я. Наприклад, «&», «» мають номери об’єктів «&», «», а також назви об’єктів «&», «» відповідно. Браузер знає, що ці рядки означають, що йому потрібно відображати відповідні символи.

Порада: можна знайти повний список імен символів тут, хоча підтримка імен об’єктів залежить від браузера.

У більшості випадків користувачі повинні бачити лише символи, які представляють об’єкти HTML. Проте можна побачити закодовані символи, зазвичай амперсанд «&», за допомогою процесу, який називається «подвійне кодування». Це відбувається, коли символ амперсанда з’являється у власній закодованій версії. Подвійне кодування зазвичай відбувається, коли вхідний код правильно закодований, оскільки він поданий, однак, коли він виводиться, він знову очищається. Це призводить до того, що амперсанд на початку «&» кодується вдруге і з’являється як «&», потім браузер правильно інтерпретує це як рядок, який слід надрукувати як «&», після декодування об’єкта HTML та ігнорування часткового сутність.