Добро пожаловать на сайт SEDBY

Настройка и использование HTMLPurifier

  • 531 просмотр +1
  • 15 августа, 2024
  • Обновлено: 5 декабря, 2025
  • admin
  • Время чтения: 3 минуты
  • 3 (Подробно)
Настройка и использование HTMLPurifier
Настройка и использование HTMLPurifier

HTML Purifier – это стандартизированная PHP-библиотека, предназначенная для решения двух основных задач:

  1. Фильтрация и удаление вредоносного кода (он же XSS или межсайтовый скриптинг).
  2. Приведение HTML контента к стандартам, соответствующим спецификациям W3C.

Необходимость в использовании данной библиотеки, оформленной в виде плагина, возникла после добавления в дистрибутив WYSIWYG-редактора CKEditor и ухода от архаичной BBCodes-разметки. Заметим, что CKEditor используется не только для наполнения страниц, уровень доступа к которому можно ограничить, но и, например в комментариях и форумах, где злоумышленника от адекватного пользователя отличить практически невозможно.

Без HTML Purifier работа с WYSIWYG-контентом становится небезопасной.

С другой стороны, при внимательном рассмотрении становится очевидным, что данная библиотека если и поддерживается, то весьма скудно. Можно предположить, что функционал исчерпан, и двигаться больше некуда, и это отчасти так. Но все же есть нюансы.

Прежде всего, на сайте разработчика последнее обновление 4.9.3 датировано 2017 годом. Вместе с битой ссылкой на отключенный форум это удручает. Общение в Google Group тоже находится в режиме хронически неотвеченных вопросов.

Правда при ближайшем рассмотрении можно обнаружить что библиотека все же обновляется. В разделе загрузок можно обнаружить версию 4.15.0 (она же входит в дистрибутив Cotonti), а распоследнюю 4.17.0 можно скачать с Github-репозитория. Правда ссылка на него почему-то особо не афишируется.

Так или иначе, плагин HTML Purifier для установки обязателен, и есть несколько моментов, о которых хотелось бы рассказать.

Настройка HTMLPurifier

По умолчанию Doctype выставляется в значение HTML5, и это правильно. Однако проекты с длительной историей могут иметь старую дефолтную установку XHTML 1.0 Transitional. Обязательно измените ее на HTML5, иначе столкнетесь с удалением специфичных для стандарта HTML5 тегов. Например, figure + figcaption или picture. Это может быть довольно болезненным для контентщика, незнакомого с конфигурированием Cotonti Siena.

Еще один момент – это преобразование ссылок из относительных в абсолютные. На первый взгляд, это не так уж и важно. Тем не менее, если в перспективе вы планируете использовать ваш ресурс с сервисами типа турбо-страниц от Яндекса, то изображения в вашем фиде не будут выводиться именно из-за относительных ссылок на них. Да и серьезной экономии от использования относительных ссылок в теле страниц вы не добьетесь.

Наша рекомендация – переходите на абсолютные ссылки в контенте.

Две оставшиеся настройки не сильно принципиальны. Уровень того, насколько тщательно HTML Purifier будет исправлять ошибки в контенте можно оставить в дефолтном значении medium. А с допуском зарегистрированных пользователей к вставке iframe-контейнеров с видео от Youtube и Vimeo решайте сами. На наш взгляд, делать этого не стоит.

Окно настроек плагина HTMLPurifier

Окно настроек плагина HTMLPurifier

Выводы и заключение

Плагин HTML Purifier обязательно должен быть установлен в системе вместе с WYSIWYG-редактором. По умолчанию это CKEditor, однако использовать его можно и нужно с любым аналогичным плагином. Наша практика показывает, что неопытные пользователи часто сталкиваются с проблемами, возникающими из-за работы неправильно настроенного HTMLPurifier и просто отключают его. 

Делать это категорически нельзя. 99% всех проблем возникают из-за неправильного значения Doctype в настройках HTML Purifier. Убедитесь в том, что у вас выбран HTML5, и вы сможете использовать в контенте весь арсенал его возможностей.


Комментарии:
Аватар

Есть, но немного. Собственно, их две:

  1. Библиотека Tidy (требует предустановленной на сервере libtidy).
  2. HTMLawed (только исправляет некорректную разметку, anti XSS отсутствует).

Все остальное в режиме разработки и для серийного использования не предназначено.

Аватар

Удручает состояние проекта HTML Purifier. Есть ли альтернатива?


Новый комментарий

Ваш комментарий будет доступен для редактирования 10 минут
Блок пользователя
Регистрация на нашем сайте позволит вам общаться на форумах и получить доступ к другому полезному функционалу
Вы вошли как Гость