HTML-посилання на символи та захист від XSS

В HTML певні символи мають особливе значення і повинні бути екрановані при відображенні як текст. HTML-посилання на символи забезпечують спосіб представлення будь-якого символу Unicode за допомогою іменованих сутностей (як ©) або числових посилань (як © або ©).

Іменовані vs. Числові посилання

  • Іменовані сутності: Зрозумілі людині посилання, як-от &amp; (для &), &lt; (для <), &gt; (для >) та &quot; (для "). Переважають, коли доступні.
  • Десяткові числові посилання: Формат &#ннн;, де ннн — десятковий кодової пункт Unicode. Приклад: &#60; для <.
  • Шістнадцяткові числові посилання: Формат &#xннн;, де ннн — шістнадцятковий кодової пункт Unicode. Приклад: &#x3C; для <.

Запобігання XSS

Атаки міжсайтового скриптингу (XSS) відбуваються, коли шкідливі скрипти впроваджуються у веб-сторінки. HTML-кодування є критичним рівнем захисту:

  • Завжди кодуйте користувацький ввід перед рендерингом у HTML-контекстах
  • П'ять символів, які ОБОВ'ЯЗКОВО потрібно кодувати: &, <, >, ", і '
  • В атрибутних контекстах також кодуйте будь-які лапки, що використовуються як розділювачі

Специфікація HTML5

Згідно зі специфікацією HTML5, користувацькі агенти повинні розпізнавати повний діапазон іменованих сутностей, визначених у специфікації HTML. Наш енкодер дотримується цих стандартів для забезпечення максимальної сумісності.