Настройки
privacy.storage_manager.language_settings
Настройки темы
HTML экранир.
Инструмент экранирования/разэкранирования HTML‑сущностей для снижения риска XSS‑атак
🚀 Быстрый старт
- Введите содержимое (HTML или уже экранированный текст) в текстовое поле
- Выберите Кодировать или Декодировать
- Нажмите кнопку для преобразования; результат появится в том же поле
- Нажмите Копировать, чтобы использовать результат
📌 Частые сценарии
- Комментарии пользователей: Экранирование комментариев пользователей для предотвращения XSS-атак
- Блог-посты: Отображение примеров HTML-кода в статьях
- Форумные сообщения: Безопасное отображение пользовательского контента
- Чат-сообщения: Предотвращение распространения вредоносного кода через функции чата
- Данные форм: Обработка и отображение данных отправки форм
- Отображение кода: Показ фрагментов HTML/JavaScript кода на веб-страницах
🧭 Рекомендации по использованию
- Контекстное экранирование: Выбирайте подходящую стратегию экранирования в зависимости от места вывода
- Серверная обработка: Критическое экранирование безопасности должно выполняться на стороне сервера
- Двойная проверка: Проверьте вывод после экранирования, чтобы убедиться, что ничего не упущено
- Используйте библиотеки: В производственных средах следует использовать зрелые библиотеки экранирования вместо ручной обработки
- Проверка предварительного просмотра: Предварительный просмотр фактического отображения в консоли браузера после экранирования
🎛️ Правила экранирования и сущности
- Распространённые символы: < > & " ' (косая черта / обычно не требуется; зависит от контекста)
- Формат сущностей: Специальные символы преобразуются в формат &entity; или &#code;, например, < становится &lt; или &#60;
- Экранирование атрибутов: Кавычки преобразуются в &quot;, защищая значения HTML-атрибутов
- Защита скриптов: Теги <script> автоматически экранируются для предотвращения JavaScript-инъекций
- Обработка тегов: <div> преобразуется в &lt;div&gt;, предотвращая разбор браузером
⚠️ Ограничения и совместимость
- Не является санитайзером: не удаляет скрипты/события/опасные протоколы; используйте вместе с очисткой контента
- Неполная защита: Экранирование само по себе не может предотвратить все XSS, комбинируйте с другими мерами безопасности
- Зависит от контекста: Разные места требуют разных стратегий экранирования (HTML-контент, атрибуты, JavaScript, CSS)
- Соображения производительности: Экранирование большого текста может повлиять на производительность страницы
🔒 Конфиденциальность и безопасность
- Вся обработка выполняется в вашем браузере; данные не покидают ваше устройство
❓ Частые вопросы
Что такое XSS-атака?
XSS (межсайтовый скриптинг) - это когда злоумышленники внедряют вредоносные скрипты в веб-страницы для кражи информации пользователей или выполнения вредоносных операций. HTML-экранирование является фундаментальной защитой от XSS
Когда необходимо HTML-экранирование?
Экранирование необходимо при отображении любого пользовательского ввода, включая комментарии, сообщения, данные форм и т.д. Любой контент, который может содержать HTML-теги, нуждается в экранировании
В чем разница между &lt; и &#60;?
Оба обозначают < (знак «меньше»). &lt; — именованная сущность (lt = less‑than), а &#60;/&#x3C; — числовые/шестнадцатеричные сущности. В современном HTML ведут себя одинаково: для читабельности используйте &lt;; &#60;/&#x3C; — там, где именованные сущности не поддерживаются или для произвольных символов/между разными языками разметки. Точку с запятой в конце необходимо сохранять (например, &lt;); без неё парсер может «склеить» с последующими буквами, например „&notin“ станет „&not;“+„in“ → „¬in“
Предотвращает ли экранирование все JavaScript-инъекции?
Нет. HTML-экранирование работает только в HTML-контексте. Контексты JavaScript, CSS и URL требуют разных методов экранирования
Почему иногда я вижу &amp;lt; двойное экранирование?
Это происходит, когда контент экранируется дважды. Сначала < становится &lt;, затем & экранируется в &amp;, результатом является &amp;lt;. Избегайте повторного экранирования
Как разрешить некоторые безопасные HTML-теги?
Используйте механизм белого списка, чтобы разрешить только определенные безопасные теги и атрибуты. Это требует специализированных библиотек санитизации HTML, а не простого экранирования