0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
Настройка
Кодируйте и декодируйте HTML-элементы. Основной кодирует только 5 символов, которые нарушают HTML: & < > " '. Расширенный кодирует также все не-ASCII символы. Выберите между элементами с именем (&amp;), десятичными (&#38;) или шестнадцатеричными (&#x26;).
Операция
Алкаш
Формат
0

Как это работает

HTML-сущности представляют символы, имеющие особое значение в разметке (< > & " ') или не входящие в ASCII, с помощью последовательностей вроде &lt;, &amp; или &#169;. Так браузер показывает их как текст, а не интерпретирует как код.

Существует три эквивалентных формата: именованный (&copy;), десятичный (&#169;) и шестнадцатеричный (&#xA9;). Все три дают один и тот же символ; именованный читаемее, но существует только для известного набора.

Область «основные» экранирует только символы, ломающие HTML (& < > " '); область «все» дополнительно экранирует любой символ вне ASCII.

Примеры

<a href="#">&lt;a href=&quot;#&quot;&gt;Экранирование не даёт браузеру интерпретировать теги и показывает их как текст.
5 < 10 & 3 > 15 &lt; 10 &amp; 3 &gt; 1
© 2024 · €&copy; 2024 · &euro;С областью «все» и именованным форматом. В десятичном это были бы &#169; и &#8364;; в шестнадцатеричном — &#xA9; и &#x20AC;.

Сценарии использования

  • Показать HTML-код как текст на странице (примеры, документация), не рендеря его.
  • Экранировать пользовательский ввод перед вставкой в HTML, чтобы предотвратить XSS.
  • Вставлять специальные символы (©, €, →, ½) переносимо между кодировками.
  • Декодировать текст с сущностями, скопированный из исходного кода страницы.

Часто задаваемые вопросы

Какой формат лучше: именованный, десятичный или шестнадцатеричный?

Именованный (&copy;) самый читаемый, но охватывает только символы с определённым именем. Десятичный (&#169;) и шестнадцатеричный (&#xA9;) работают для любого символа Unicode, поэтому это безопасный вариант для редких символов.

Предотвращает ли кодирование сущностей XSS-атаки?

Это важная часть, но экранирование нужно выполнять в зависимости от контекста (HTML-содержимое, атрибут, JavaScript или URL). Не полагайтесь на один слой: используйте также средства защиты фреймворка.

Какие символы всегда нужно экранировать?

& < и > в содержимом, а также " и ' внутри значений атрибутов. Область «основные» покрывает именно этот набор.

Отправляется ли мой текст на сервер?

Нет. Кодирование и декодирование происходят полностью в браузере.