Настройка и использование HTMLPurifier
Популярные запросы: тема Omnis, плагин Pagelist, Cotonti 0.9.24.2, ЧПУ, Font Face
- 119 просмотров
- 15 августа, 2024
- Обновлено: 15 августа, 2024
- admin
- Время чтения: 3 минуты
- 3 (Подробно)
HTML Purifier – это стандартизированная PHP-библиотека, предназначенная для решения двух основных задач:
- Фильтрация и удаление вредоносного кода (он же XSS или межсайтовый скриптинг).
- Приведение 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 решайте сами. На наш взгляд, делать этого не стоит.
Выводы и заключение
Плагин HTML Purifier обязательно должен быть установлен в системе вместе с WYSIWYG-редактором. По умолчанию это CKEditor, однако использовать его можно и нужно с любым аналогичным плагином. Наша практика показывает, что неопытные пользователи часто сталкиваются с проблемами, возникающими из-за работы неправильно настроенного HTMLPurifier и просто отключают его.
Делать это категорически нельзя. 99% всех проблем возникают из-за неправильного значения Doctype в настройках HTML Purifier. Убедитесь в том, что у вас выбран HTML5, и вы сможете использовать в контенте весь арсенал его возможностей.
Есть, но немного. Собственно, их две:
Все остальное в режиме разработки и для серийного использования не предназначено.
Удручает состояние проекта HTML Purifier. Есть ли альтернатива?
Новый комментарий