Ivan Abramenko 11/17/2019

Сайты на друпале обычно делают для того, чтобы потом выложить в Интернет. А когда вы выкладываете сайт, то он становится доступным всему миру, в том числе спамерам и сканерам, ищущим возможность выложить спам и свой код на вашем сайте. В друпале есть проверки и фильтры тексты, чтобы находить и обезвреживать код из  ваших форм ввода данных (подробнее можете прочитать про XSS-атаки).

Давайте зайдем в Конфигурацию - Работа с содержимым - Текстовые форматы и редакторы:

/admin/config/content/formats

Drupal 8 Text Formats and Editors

Здесь у нас по умолчанию есть текстовые форматы: Full HTML, Basic HTML, Restricted HTML, Простой текст. Они выполняются сверху вниз, если у пользователя есть нужная роль, то применяется, если нет роли, то применяется фильтр, который расположен ниже. Чем ниже фильтр, тем меньше остается текста и тем больше фильтров применяется. Давайте выставим в самый верх Full HTML, это самый лояльный фильтр, в нем наименьшее количество проверок, пусть он будет по умолчанию у админов:

 

Drupal 8 text formats

Давайте теперь зайдем в настройки Basic HTML и поставим роли для анонимов этот фильтр, пусть они тоже имеют возможность использовать CKEditory (визуальный редактор).

Drupal 8 Basic HTML

Обратите внимание, что по умолчанию CKEditor отключен по умолчанию и это сделано не просто так. Дело в том что устаревшие визуальные редакторы это уязвимость вашего сайта. А так как вы открываете визуальный редактор анонимным пользователям, то вы открываете уязвимость всем. Но не беспокойтесь, CKEditor встроен в друпал и он будет обновляться вместе с друпалом.

Давайте перейдем к дальнейшим настройкам, здесь мы можем создать группы иконок и перетащить туда нужные нам иконки. Я создал группу Выравнивание и вставил туда иконки для выравнивания текста.

Drupal 8 panel CKEditor

После этого у нас есть возможность настроить загрузку файлов через CKEditor, но думаю там все в порядке и по умолчанию:

Drupal 8 panel CKEditor

 Дальше мы можем выставить фильтры для формата текста. Обратите внимание на фильтр "Пропускать только разрешенные HMTL-теги", он основной для Basic HTML, именно он фильтрует javascript-код из текстовых полей и оставляет только нужные теги. Остальные фильтры вы можете включать и выключать по вашему желанию.

drupal 8 filters

Включенные фильтры мы можем выстроить в порядке выполнение ниже. Здесь нужно чтобы основной фильтр "Пропускать только разрешенные HMTL-теги" был сверху, он должен отфильтровать весь javascript-код перед тем как остальные фильтры начнуть делать свое дело.

drupal 8 order filters

И в самом конце мы можем выставить какие теги оставлять после фильтрования. В принципе здесь довольно широкий набор HTML-тегов, так что можно оставить все как есть. А вот галочку rel="nofollow" я бы все-таки добавил, чтобы спам комментарии на сайте не вредили нашему seo-продвижению.

drupal 8 tags