Очистка HTML - HTML sanitization

Очистка HTML это процесс изучения HTML document и создание нового HTML-документа, который сохраняет только те теги, которые обозначены как «безопасные» и желаемые. Очистка HTML может использоваться для защиты от таких атак, как межсайтовый скриптинг (XSS) путем дезинфекции любого HTML-кода, отправленного пользователем.

Часто разрешены базовые теги для изменения шрифтов, например <b>, <i>, <u>, <em>, и <strong> в то время как более продвинутые теги, такие как <script>, <object>, <embed>, и <link> удаляются в процессе дезинфекции. Также потенциально опасные атрибуты, такие как по щелчку удаляются, чтобы предотвратить внедрение вредоносного кода.

Санитарная обработка обычно выполняется с помощью белый список или черный список подход. Оставить безопасный HTML-элемент из белого списка не так уж и серьезно; это просто означает, что эта функция не будет включена после очистки. С другой стороны, если небезопасный элемент не включен в черный список, уязвимость не будет удалена из вывода HTML. Поэтому устаревший черный список может быть опасен, если в Стандарт HTML были добавлены новые небезопасные функции.

Дальнейшая дезинфекция может выполняться на основе правил, которые определяют, какая операция должна выполняться над тематическими тегами. Типичные операции включают удаление самого тега с сохранением содержимого, сохранение только текстового содержимого тега или принудительное присвоение определенных значений атрибутам.[1]

Реализации

В PHP, Очистку HTML можно выполнить с помощью strip_tags () работают с риском удаления всего текстового содержимого после незакрытого символа «меньше чем» или угловой скобки.[2] Библиотека HTML Purifier - еще один популярный вариант для приложений PHP.[3]

В Ява.СЕТЬ ), дезинфекция может быть достигнута с помощью OWASP Проект Java HTML Sanitizer.[4]

В .СЕТЬ, ряд дезинфицирующих средств используют Html Agility Pack, анализатор HTML.[5][6][1]

В JavaScript есть дезинфицирующие средства "только JS" для задний конец, и на основе браузера[7] реализации, которые используют собственный парсер DOM браузера для анализа HTML (для повышения производительности).

Смотрите также

Рекомендации

  1. ^ а б https://github.com/Vereyon/HtmlRuleSanitizer
  2. ^ "strip_tags". PHP.NET.
  3. ^ http://www.htmlpurifier.org
  4. ^ https://www.owasp.org/index.php/OWASP_Java_HTML_Sanitizer_Project
  5. ^ http://htmlagilitypack.codeplex.com/
  6. ^ http://eksith.wordpress.com/2011/06/14/whitelist-santize-htmlagilitypack/
  7. ^ https://github.com/jitbit/HtmlSanitizer