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 минут чтения Sodium Carbonate

Комментарии (0)

Комментарии отсутствуют
Добавление комментариев доступно только зарегистрированным пользователям

Автор контента

webitproff

Онлайн

Sodium Carbonate

Последняя авторизация: 19.07.2026 01:57

  • Страница размещена: 17.07.2020 05:15
  • Последнее обновление: 12.11.2021 17:34

Похожие страницы

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