Пять символов, которые ломают разметку
Заменяет угловые скобки, амперсанды и кавычки на HTML-сущности или выполняет обратное преобразование.
В HTML есть несколько зарезервированных символов, и оставленный в тексте знак «меньше» превращает остаток страницы в сломанный тег.
Экранирование — ещё и базовая защита от XSS. Любой пользовательский текст, попадающий в страницу, обязан быть экранирован, иначе присланный тег скрипта станет исполняемым.
Что показывает калькуляторТекст с зарезервированными символами, заменёнными на сущности Обратное преобразование сущностей в обычные символы Длину результата, которая при экранировании заметно растёт Что важно учитыватьЭкранируются пять значимых символов: & < > " и апостроф. При раскодировании обрабатываются именованные сущности и числовые ссылки вида «. Частые вопросыКакие символы обязательно экранировать? Амперсанд, обе угловые скобки и кавычки. Амперсанд обрабатывают первым, иначе получится двойное экранирование только что созданных сущностей.
Защищает ли экранирование от XSS? Это основа защиты для текста, вставляемого в HTML. Для атрибутов, URL и JavaScript нужны свои правила экранирования дополнительно.
Чем &quot; отличается от &#34;? Ничем: это именованная сущность и числовая ссылка на один и тот же символ. Именованные просто читаются легче.
Нужно ли экранировать кириллицу? Нет. При UTF-8 кириллица и диакритика пишутся напрямую. Экранирования требуют только зарезервированные символы.
Мини-пример расчёта Кусок разметки как текст
Входные данные: <div class="card">Привет & пока</div>
Результат: <div class="card">Привет & пока</div>
Комментарий: В таком виде браузер покажет саму разметку, а не выполнит её — именно это нужно для примера кода.