Releases
Releases
Posted By Gregory

WP Cerber Security 9.9.5


English version: WP Cerber Security 9.9.5


В этом релизе мы сократили разрыв между событием безопасности и настройкой, вызвавшей его. Мы переработали механизм связи WP Cerber из журнала активности с точной настройкой, лежащей в основе принятого решения, исправили два дефекта в административном интерфейсе и усилили защиту от экранирования URL-адресов в административной панели. Кроме того, мы начали хранить объявления в административной панели в виде структурированных, проверенных данных, а не в виде сгенерированного HTML.

Основные моменты

Ссылки в пояснениях к журналу активности теперь ведут в нужное место. Когда решение WP Cerber было обусловлено политикой ролей, ссылка открывает правильную вкладку роли и выделяет точное поле, вместо того чтобы перенаправлять вас на страницу настроек, где вам придется искать его самостоятельно.

Теперь, перейдя по такой ссылке, целевые настройки центрируются в видимой области, поэтому панель администратора WordPress больше не закрывает их, и вы можете видеть соседние настройки для контекста.

В разделе «Передача почты» больше не отображается необработанный HTML-код там, где должна быть ссылка.

Опыт работы администратором

Теперь можно обращаться к настройкам политики ролей. Ранее ссылка, созданная для настройки, содержала в фрагменте URL одно значение с двумя противоречащими друг другу смыслами: поле для выделения или вкладка для открытия. Настройки политики ролей никогда нельзя было выделить, поскольку место, необходимое для их поля, уже было занято указателем вкладки. Теперь фрагмент содержит два независимых объявления, каждое из которых называет один элемент и может использоваться без другого. На практике пояснительная ссылка [Управление], как показано ниже, превращается в переход в один клик на нужную вкладку роли с мигающим соответствующим полем.

Two-factor authentication enforced explainer

Two-factor authentication enforced explainer

Ссылки с прокруткой и мигающими ссылками центрируют настройки. Нативная фрагментная навигация выравнивает целевой элемент по верхнему краю окна браузера, точно там, где находится панель администратора. Теперь мы центрируем содержащую строку настроек, когда страница готова, и снова после завершения загрузки окна. Второй проход исправляет нативные смещения выравнивания и компоновки, вызванные задержкой загрузки контента. Оболочки полей вне строк настроек остаются без изменений, и когда браузер сообщает о предпочтении prefers-reduced-motion , прокрутка происходит без анимации.

Изменения в системе безопасности

Более строгий алгоритм экранирования URL-адресов для административного вывода. Мы заменили стек фильтров и регулярных выражений внутри crb_escape_url() явной проверкой структуры URL-адреса. Теперь вспомогательная функция принимает URL-адреса относительно корня, начинающиеся с одной косой черты, в дополнение к уже поддерживаемым формам HTTP(S), FTP(S) и mailto. URL-адреса относительно протокола, варианты сетевых путей с обратной косой чертой, неподдерживаемые схемы и другие относительные формы по-прежнему отклоняются.

Мы также перестали удалять кавычки, угловые скобки и обратные кавычки из принимаемых URL-адресов. Отказ от старого средства очистки имеет очевидный плюс: пути URL-адресов, не являющихся ASCII-символами, сохраняются без изменений. Функция Invalid UTF-8 больше не преобразует экранированный результат в пустое значение атрибута, поскольку теперь экранировщик заменяет эти байты.

Улучшение надежности

Административные объявления хранятся в виде структурированных данных, а не разметки. Мы внедрили UI Spec — строгую сериализованную форму внутреннего представления UI Factory плагина WP Cerber. Вместо сохранения сгенерированного HTML-кода, плагин теперь хранит версионированный, проверенный документ, который при рендеринге преобразуется обратно в дерево пользовательского интерфейса и передается активному рендереру.

Исправлены ошибки

Работала только первая ссылка на настройки в журнале активности. На странице журнала активности, когда для событий с участием одного и того же пользователя отображалось несколько пояснений, и правило, лежащее в основе решения WP Cerber, основывалось на ролях, только первая ссылка прокручивалась до нужного места и выделяла его. Все последующие ссылки открывали страницу настроек, основанных на ролях, не переходя к нужным настройкам.

В разделе «Почтовая пересылка» отображался необработанный HTML-код. Вместо ссылки отображалась буквальная разметка для ссылки «Доступно в профессиональной версии WP Cerber». Уведомление было добавлено в качестве HTML-якоря к описанию раздела, а описания разделов экранировались средством рендеринга настроек перед выводом. Теперь описания разделов остаются обычным текстом, а требование PRO отображается отдельно в виде структурированной ссылки на раздел, создаваемой с помощью UI Factory. Экранирование для описаний сохранено, и ссылки на уровне раздела отображаются безопасно.

Краткое содержание

Благодаря этому обновлению процесс сортировки запросов сократился. Теперь пояснение в журнале активности ведет непосредственно к настройке, лежащей в основе решения, и выделяется на экране. В разделе «Почтовая пересылка» корректно отображается уведомление для пользователей PRO, а административные ссылки экранируются в соответствии с более строгими правилами. Объявления хранятся в виде проверенных структур, поэтому некорректные данные отображаются визуально, а не незаметно.

Совместимость

Данная версия была протестирована с PHP 7.4.33, 8.0.30, 8.1.34, 8.2.33, 8.3.33, 8.4.24 и 8.5.9, а также с WordPress 5.8.14, 6.6.6, 6.7.6, 6.8.7, 6.9.6 и 7.1.


I'm a team lead in Cerber Tech. I'm a software & database architect, WordPress - PHP - SQL - JavaScript developer. I started coding in 1993 on IBM System/370 (yeah, that was amazing days) and today software engineering at Cerber Tech is how I make my living. I've taught to have high standards for myself as well as using them in developing software solutions.

View Comments
There are currently no comments.