Releases
Posted By

WP Cerber Security 9.9.3


English version: WP Cerber Security 9.9.3


Краткий обзор

В версии 9.9.3 мы сосредоточились на корректной работе тех мест, на которые вы полагаетесь в случае возникновения проблем. В этом релизе исправлена работа WP Cerber при критических сбоях PHP, исправлено сопоставление диапазонов IPv6 в списках контроля доступа , а также реализовано отображение уведомлений администратора на вашем языке.

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

  • Теперь критические ошибки PHP обрабатываются корректно. Когда у нас была включена система логирования ошибок, необработанная ошибка могла привести к тому, что страница с критической ошибкой WordPress и электронное письмо о режиме восстановления переставали отображаться. Мы это исправили.
  • Надежная диагностика. Теперь информация о фатальной ошибке, которая фактически привела к прекращению запроса, достоверно попадает в журнал инспектора дорожного движения, обеспечивая точность анализа.
  • Диапазоны IPv6 ведут себя детерминированно. Допустимые диапазоны, обозначенные дефисом или символом подстановки, больше не отклоняются, а границы диапазонов теперь совпадают включительно.
  • Административные уведомления в вашем регионе. Сообщения, генерируемые фоновыми запросами без участия пользователя, теперь переводятся в момент их прочтения, а не в момент создания.

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

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

Теперь границы диапазонов IPv6 включают в себя все адреса. Мы исправили сравнение границ таким образом, что первый и последний адреса диапазона IPv6 рассматриваются как часть этого диапазона. Решения о доступе по всему диапазону теперь детерминированы, включая адреса границ.

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

Сообщение о проблеме с отправкой электронного письма теперь переводится во время рендеринга. На веб-сайте, не на английском языке, уведомление о неудачной отправке электронного письма могло отображаться в языковой версии запроса, который не смог его отправить, обычно это был автоматический запрос, например, запланированный отчет или оповещение, инициированное посетителем. Теперь сообщение корректно отображается в языковой версии администратора в момент его показа.

Сообщения о восстановлении настроек теперь локализованы корректно. Если настройки плагина были повреждены на сайте не на английском языке, отчет о восстановлении отображался администратору без перевода. Нас это тоже не устраивало. Теперь сообщение перестраивается и переводится при отображении на языке администратора, который его читает.

Сообщения виджета готовности получили корректную реализацию интернационализации (i18n). Некоторые сообщения в виджете не имели локализации и не могли быть переведены. Этот пробел устранен.

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

Ускоренная работа уровня базы данных на часто используемых путях. Мы уменьшили накладные расходы на проверку идентификаторов в нашем построителе запросов, заменив проверки на основе регулярных выражений на легковесное сканирование символов. Часто выполняемые операции с базой данных теперь стали более эффективными, а существующие правила проверки и поведение запросов полностью сохранены.

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

Тестирование на совместимость. Мы протестировали этот релиз с 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.0.3.

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

Необработанные фатальные ошибки больше не обходят восстановление WordPress. Это наиболее важное исправление в этом релизе. Когда логирование ошибок было активно и возникало необработанное исключение Throwable, такое как необработанное исключение, ошибка типа или ошибка синтаксического анализа, наш обработчик прерывал обычную обработку фатальных ошибок PHP. Это могло помешать WordPress отобразить страницу критической ошибки, отправить электронное письмо в режим восстановления или отменить некорректные изменения PHP, внесенные через встроенный плагин или редактор тем. Затронутые ошибки также могли отсутствовать в debug.log, если включена опция WP_DEBUG_LOG . Нефатальные ошибки PHP никогда не затрагивались этой ошибкой.

Теперь фатальные ошибки надежно попадают в журнал Traffic Inspector. Не все ошибки PHP регистрировались. Наши собственные процедуры завершения работы выполняют операции с базой данных и сетью, которые могут создавать дополнительную диагностическую информацию, и поскольку PHP хранит только один слот для последней ошибки, более позднее предупреждение может заменить фатальную ошибку, которая прервала запрос. Теперь мы делаем снимок последней ошибки в самом начале нашего обратного вызова завершения работы, поэтому наши собственные процедуры обслуживания больше не могут ее перезаписать. В духе прозрачности: обратные вызовы завершения работы, зарегистрированные другим кодом до нашего, все еще могут изменять последнюю ошибку перед нашим запуском.

В блоке быстрой навигации больше не отображаются предупреждения PHP. Многозначные параметры запроса могли приводить к сравнению скалярных строк, вызывая предупреждения Array to string conversion . В зависимости от конфигурации обработки ошибок PHP, эти предупреждения могут засорять журналы, появляться в административной панели или искажать AJAX-ответ.

Итог

В версии 9.9.3 сбои становятся предсказуемыми, а диагностика — достоверной. Теперь критические ошибки попадают как в инструменты восстановления WordPress, так и в наши журналы, поэтому сортировка начинается с точных данных. Диапазоны IPv6 корректно работают в ACL и в фильтрах журналов. Административные уведомления отображаются на вашем языке, именно тогда и там, где вы их читаете.


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.