HTML-дезинфекция
Эта статья нуждается в дополнительных цитатах для проверки . ( декабрь 2009 г. ) |
В данных очистке очистка HTML — это процесс проверки HTML- документа и создания нового HTML-документа, в котором сохраняются только те теги и атрибуты, которые обозначены как «безопасные» и желательные. Очистку HTML можно использовать для защиты от таких атак, как межсайтовый скриптинг (XSS), путем очистки любого HTML-кода, отправленного пользователем.
Подробности
[ редактировать ]Часто допускаются базовые теги для изменения шрифтов, например <b>
, <i>
, <u>
, <em>
, и <strong>
в то время как более продвинутые теги, такие как <script>
, <object>
, <embed>
, и <link>
удаляются в процессе санитарной обработки. Также потенциально опасные атрибуты, такие как onclick
Атрибуты удаляются, чтобы предотвратить внедрение вредоносного кода.
Санитизация обычно выполняется с использованием либо белого , либо черного списка . Исключение безопасного HTML-элемента из белого списка не так уж и серьезно; это просто означает, что эта функция не будет включена после санитарной обработки. С другой стороны, если небезопасный элемент исключен из черного списка, уязвимость не будет удалена из вывода HTML. Поэтому устаревший черный список может быть опасным, если в стандарт HTML были введены новые, небезопасные функции.
Дальнейшая очистка может выполняться на основе правил, определяющих, какую операцию следует выполнить над тегами субъектов. Типичные операции включают удаление самого тега с сохранением содержимого, сохранение только текстового содержимого тега или принудительное присвоение атрибутам определенных значений. [1]
Реализации
[ редактировать ]В PHP очистку HTML можно выполнить с помощью strip_tags()
функция с риском удаления всего текстового содержимого после незакрытого символа «меньше» или угловой скобки. [2] Библиотека HTML Purifier — еще один популярный вариант для PHP-приложений. [3]
В Java (и .NET ) очистку можно выполнить с помощью проекта OWASP Java HTML Sanitizer Project. [4]
В .NET ряд дезинфицирующих средств используют Html Agility Pack — анализатор HTML. [5] [6] [1] Другая библиотека — HtmlSanitizer. [7]
В JavaScript есть дезинфицирующие средства «только для JS» для серверной части и для браузера. [8] (DOM) браузера реализации, которые используют собственный анализатор объектной модели документа для анализа HTML (для повышения производительности).
Ссылки
[ редактировать ]- ^ Перейти обратно: а б «Хтмлрулесанитайзер» . Гитхаб . 13 августа 2021 г.
- ^ "strip_tags" . PHP.NET.
- ^ «HTML Purifier — фильтруйте ваш HTML в соответствии со стандартами!» . htmlpurifier.org .
- ^ «OWASP Java HTML Sanitizer» .
- ^ «Пакет HTML Agility Pack — Главная страница» . Архивировано из оригинала 1 января 2013 г. Проверено 4 января 2013 г.
- ^ «Сантизация белого списка с помощью HtmlAgilityPack» . 14 июня 2011 г.
- ^ Гансс, Майкл (5 декабря 2023 г.). «Хтмлсанитайзер» . Проверено 7 декабря 2023 г.
- ^ «JS HTML-дезинфицирующее средство» . Гитхаб . 14 октября 2021 г.