IT Market
Инструменты/Код/Данные/Экранировать HTML-символы в сущности онлайн
HTML Entities Encode

Кодируйте HTML сущности

Коротко об инструменте

Экранировать HTML-символы в сущности онлайн

Чтобы кусок разметки отобразился на странице как текст, а не превратился в элементы, служебные символы нужно заменить сущностями: угловые скобки, амперсанд и кавычки. Инструмент делает эту замену за вас — вставьте фрагмент кода, получите строку, которую можно без опаски положить в статью, в карточку товара, в письмо или в поле CMS. Это же преобразование лежит в основе защиты от XSS, когда пользовательский ввод выводится обратно на страницу. Смотрите также: вернуть сущности обратно в обычный текст, очистить фрагмент от лишних тегов, собрать HTML из Markdown-черновика.

Как пользоваться

  1. Вставьте фрагмент кода или текст со скобками и кавычками в поле «Исходный текст».
  2. Нажмите «Кодировать» — служебные символы заменятся сущностями в поле «Результат кодирования».
  3. Сверьте результат: тег должен превратиться в <div>, а амперсанд — в &.
  4. Нажмите «Копировать» и вставьте безопасную строку в статью, шаблон письма или поле CMS.
  5. Кнопка «Очистить» убирает оба поля, если следом нужно закодировать другой фрагмент.

Вопросы и ответы

Какие символы обязательно экранировать в HTML?

В тексте страницы критичны три: амперсанд, меньше и больше — без них разметка не начнётся. В значении атрибута к ним добавляются двойная и одинарная кавычки, иначе строка закроется раньше времени и всё, что дальше, станет частью тега. Кириллица, пробелы и знаки препинания в экранировании не нуждаются.

Как вставить пример кода в статью, чтобы он не выполнился?

Закодируйте фрагмент здесь и вставьте результат внутрь блока pre и code. Браузер покажет <div> как обычный текст, а не создаст элемент. Если редактор CMS сам экранирует ввод, дополнительное кодирование даст двойное экранирование и в статье появятся строки вида < — проверьте предпросмотр.

Достаточно ли экранирования, чтобы защититься от XSS?

Для вывода пользовательского текста в тело страницы — почти всегда да, и делать это нужно на сервере или в шаблонизаторе, а не вручную. Но контекст важен: внутри тега script, в значении href или в inline-обработчике события правила другие, и одних HTML-сущностей мало. Ручной прогон через страницу — это подготовка контента, а не механизм безопасности приложения.

Нужно ли кодировать кириллицу в сущности вида П?

Нет. Современные страницы отдаются в UTF-8, и русские буквы в них пишутся как есть — так текст короче и лучше индексируется. Числовые ссылки для кириллицы имели смысл во времена смешанных кодировок, а сегодня встречаются в основном в старых выгрузках и в письмах.

Чем это отличается от кодирования URL?

HTML-сущности решают, как символ будет показан в документе, а процентное кодирование — как он переживёт передачу в адресе. Для ссылки с параметрами нужен кодировщик URL. Если строка попадает в атрибут href, иногда требуются оба преобразования: сначала URL-кодирование значения, затем HTML-экранирование всего атрибута.

Где обрабатывается вставленный фрагмент?

Замена символов происходит скриптом в открытой вкладке, поэтому черновик статьи или чужой отзыв можно вставлять спокойно: наружу ничего не уходит. Поля живут только до обновления страницы, так что забирайте результат кнопкой «Копировать» сразу.

Примеры

Пример кода внутри статьи блога
До: Оформить & оплатить
После: <a href="/order">Оформить & оплатить</a>
Отзыв пользователя перед выводом на страницу
До: Цена лучшая в городе
После: Цена <b>лучшая</b> в городе