Що робить інструмент
HTML-сутності — це коди, що позначають символи, наприклад < для < і é для é. Цей інструмент екранує текст у сутності, щоб безпечно показати його на вебсторінці, і декодує сутності назад у звичайний текст — наприклад, коли ви копіюєте розмітку з CMS чи шаблону листа.
Під час кодування використовується повний список HTML5 із понад 2 000 іменованих посилань, а декодування розуміє іменовані, десяткові (©) і шістнадцяткові (©) посилання точно так, як браузер.
Як користуватися
- Вставте текст чи HTML у поле Вхідні дані, завантажте файл або натисніть Приклад.
- Виберіть Кодувати або Декодувати.
- Під час кодування виберіть, скільки символів кодувати:
- Лише & < > ” ’: мінімум, потрібний, щоб вставити текст у HTML або атрибут.
- Плюс не-ASCII, іменовані: також перетворює символи на кшталт é, © і — на іменовані сутності, а все, що не має назви, — на числові посилання.
- Плюс не-ASCII, числові: те саме, але завжди числові (
é), що також є коректним XML. - Усе, що має назву: кодує навіть розділові знаки, як-от
.і/, — корисно, коли система вирізає ці символи.
- Скопіюйте або збережіть результат. Зробити вхідними даними дає змогу знову його декодувати й перевірити перетворення туди й назад.
Приклад
<p>Café & "crème brûlée"</p>
після кодування лише спеціальних символів перетворюється на
<p>Café & "crème brûlée"</p>
а з іменованими сутностями для не-ASCII — на
<p>Café & "crème brûlée"</p>
Типові сценарії
Показати фрагмент коду в блозі так, щоб браузер його не відрендерив, вставити текст користувача в HTML-лист, виправити двічі екранований текст на кшталт &amp; (декодуйте один раз) або зробити файл безпечним для системи, яка приймає лише ASCII.
Часті запитання
› Які символи обов’язково екранувати в HTML?
У тексті екрануйте & і <. Усередині значень атрибутів також екрануйте лапку, якою обгорнуто значення. Екранування & < > " і ' всюди, як тут за замовчуванням, завжди безпечне.
› Що використовувати: іменовані чи числові сутності?
Обидва варіанти працюють у кожному сучасному браузері. Іменовані сутності на кшталт é легше читати; числові посилання на кшталт é працюють також в XML і в старих парсерах, що знають лише кілька назв. На сторінці в UTF-8 символи поза ASCII зазвичай узагалі не потрібно кодувати.
› Чи декодуються сутності без крапки з комою?
Так. Декодер дотримується специфікації HTML, тож застарілі форми на кшталт © без крапки з комою декодуються так само, як у браузері. Невідомі назви, як-от &foo;, лишаються без змін.
› Чи достатньо екранування, щоб запобігти XSS?
Екранування — правильний захист для тексту всередині HTML-елементів і атрибутів у лапках. Воно не робить ненадійні дані безпечними всередині блоків script чи style, атрибутів обробників подій або URL — там потрібне кодування з урахуванням контексту.