HTML экранирование/разэкранирование
Экранируйте специальные символы HTML в сущности или локально разэкранируйте именованные, десятичные и шестнадцатеричные ссылки на символы для показа тегов и примеров кода.
Входной текст
Символы
0 / 50,000
Быстрый старт
Частые сценарии
Комментарии пользователей
экранируйте текст, если вам нужно, чтобы комментарии отображались в виде обычного текста внутри контекста содержимого HTML.
Блог-посты
Отображение примеров HTML-кода в статьях
Сообщения на форуме
показывать пользовательский текст, не позволяя тегам отображаться как разметка
Сообщения чата
визуализируйте вставленную разметку как текст до того, как она достигнет области содержимого HTML.
Данные формы
проверьте и скопируйте экранированные значения перед отображением отправленного текста.
Отображение кода
Показ фрагментов HTML/JavaScript кода на веб-страницах
Правила экранирования и сущности
Границы побега против санитарной обработки
Рекомендации по использованию
Ограничения и совместимость
Конфиденциальность и безопасность
Частые вопросы
XSS (межсайтовый скриптинг) возникает, когда ненадежный контент интерпретируется как скрипт или разметка на странице. Экранирование HTML помогает в контекстах контента HTML, но это только одна часть предотвращения XSS.
Используйте экранирование HTML, когда ненадежный текст вставляется в контекст содержимого или атрибута HTML. Отдавайте предпочтение textContent или экранированию по умолчанию вашей платформы для обычного текста и используйте другое экранирование для контекстов JavaScript, CSS, URL или JSON.
Оба обозначают < (знак «меньше»). &lt; — именованная сущность (lt = less‑than), а &#60;/&#x3C; — числовые/шестнадцатеричные сущности. В современном HTML ведут себя одинаково: для читабельности используйте &lt;; &#60;/&#x3C; — там, где именованные сущности не поддерживаются или для произвольных символов/между разными языками разметки. Точку с запятой в конце необходимо сохранять (например, &lt;); без неё парсер может «склеить» с последующими буквами, например „&notin“ станет „&not;“+„in“ → „¬in“
Нет. Экранирование HTML работает только для контекстов объектов HTML. Строки JavaScript, CSS, URL-адреса, JSON и расширенный HTML требуют разной обработки.
Это происходит, когда контент экранируется дважды. Сначала < становится &lt;, затем & экранируется в &amp;, результатом является &amp;lt;. Избегайте повторного экранирования
Используйте санитарную обработку, а не этот инструмент спасения. Дезинфицирующее средство может включать в список разрешенных безопасные теги и атрибуты, фильтровать протоколы и удалять события или стили. Используйте такие библиотеки, как DOM Purify или sanitize-html, по возможности выполняйте дезинфекцию на сервере и используйте textContent для простого текста.