HTMLPurifier и его использование в Cotonti Siena

HTMLPurifier является важным плагином, обеспечивающим безопасность сайта и соответствие его контента стандартам W3C

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

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

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

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

3 minutes read Sodium Carbonate

Comments (0)

No comments yet
Only registered users can post new comments

Content author

webitproff

Offline

Sodium Carbonate

Last logged: 2026-09-01 22:41

About me briefly
Support and development of web projects on the CMF Cotonti: private messengers via the website, open and closed small social networks, trading platforms and marketplaces, freelance and services exchange portal, catalogs of goods from wholesale suppliers, dropshipping platforms, online stores, and much more.
View developments and download
Public portfolio of my works and developments
Telegram for messages
@webitproff
Telegram channel
@s/aBuyFILE
  • Page published: 2020-07-17 05:15
  • Last update: 2021-11-12 17:34

Similar pages

CSS переменные и их использование в верстке
1 К использованию CSS-переменных я так и не пришел, поскольку имплементация LESS произошла раньше, чем нативное
Название хука в Cotonti и разбор его строки
2 Название хука и разбор его строки $extp = cot_getextplugins('admin.users.row.tags'); Точками разделяется
Товар недоступен, устарел или его нет в наличии
3 Давайте детально рассмотрим, как с точки зрения SEO быть в случае если товары по каким-либо причинам становятся
Человекопонятный URL и правила его использования
4 Формирование человекопонятных урлов – при всей их важности – часто недооценивается или не понимается разработчиками
Rel Canonical и его важность для SEO оптимизации сайта
5 Канонический URL является важным элементом поисковой оптимизации сайта. Его назначение состоит в том, чтобы – при