Сутності HTML
Екрануйте символи розмітки, щоб вони відображалися як текст, або декодуйте їх назад.
- Працює у вашому браузері — ваш текст нікуди не надсилається
- Без реєстрації та квот, безкоштовно користуйтеся скільки завгодно
Як це працює
Вставлення ненадійного тексту на вебсторінку без екранування — саме те, що призводить до міжсайтового скриптингу. Кодування перетворює символи, які браузер вважає розміткою, на сутності, тож їх відображають, а не виконують.
Що кодується
П'ять важливих символів: амперсанд, «менше», «більше», подвійні лапки й апостроф. Амперсанд потрібно кодувати першим, інакше все, що йде після нього, буде закодовано двічі.
Декодування
Декодування перетворює іменовані та числові сутності назад на символи за допомогою синтаксичного аналізатора браузера, а не таблиці відповідників, тому весь набір обробляється правильно.
Що саме кодується
Кодування замінює п'ять символів: & стає &, < стає <, > стає >, " стає ", а ' стає '. Цього досить, щоб безпечно показувати текст усередині HTML і в атрибутах у лапках. Літери з діакритичними знаками та емодзі залишаються без змін, бо сторінки в UTF-8 відображають їх безпосередньо.
Декодування
Декодування розуміє всі іменовані сутності, визначені в HTML, як-от é, — і , а також числові сутності у десятковому чи шістнадцятковому записі (é, é), бо використовує власний HTML-аналізатор вашого браузера.
Сутності HTML: запитання
Чи убезпечить це мій сайт від XSS?
Екранування виводу — необхідна частина захисту, але безпека залежить від екранування в потрібному контексті. Якщо у вас є фреймворк, користуйтеся його екрануванням.
Які символи воно кодує?
Амперсанд, знак «менше», знак «більше», подвійні лапки й апостроф — символи, які браузер інакше сприйняв би як розмітку.
Чи завантажується мій текст на сервер?
Ні. Кодування виконується на сторінці.