Jump to main content Jump to doc navigation

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

Примечание: выпуск v2.8.2 содержал несколько ошибок. В частности, возможность отображать статический HTML-код была непреднамеренно удалена и редакторы форматированного текста, такие как TinyMCE, больше не могли отображать медиа-браузер. Эти проблемы были исправлены в версии 2.8.3, выпущенной 28 мая.

Статические пути к ресурсам

После обновления до 2.8.2 все статические ресурсы по умолчанию ограничены каталогом ресурсов, если вы предварительно не настроили resource_static_path. Статические ресурсы, расположенные где-либо еще (ядро, вне корневого веб-узла и т.д.), выдадут 404 (#15656).

Если вы используете статические ресурсы и храните их где-нибудь еще, у вас есть несколько вариантов:

  1. (Рекомендуется) Настройте системную настройку resource_static_path, чтобы указать абсолютный путь, по которому расположены ваши статические файлы ресурсов. Например, если вы храните свои статические файлы ресурсов в core/files/, измените настройку на {core_path}files/. Если ваши статические ресурсы находятся где-нибудь в корне веб-сайта, вы можете использовать {base_path}.
  2. (Не рекомендуется) Включите новую системную настройку resource_static_allow_absolute, которая позволит предоставить любой допустимый абсолютный путь к статическому ресурсу.

Важно: включение resource_static_allow_absolute или настройка слишком широкого пути в resource_static_path позволит злонамеренному пользователю-менеджеру получить доступ к любому файлу в файловой системе, включая файлы, которые не должны быть раскрыты, например файлы конфигурации или файлы сервера. Либо установите его в общедоступный каталог, такой как активы, либо в каталог, относящийся к статическим ресурсам, чтобы нельзя было прочитать файлы, к которым пользователь не должен иметь доступа.

Разрешения на статические ресурсы, веб-ссылки и символические ссылки

Ранее существовали разрешения new_static_resource, new_weblink и new_symlink и влияли на то, какие типы ресурсов отображались на панели инструментов дерева ресурсов, однако на самом деле они не применялись и легко обходились путем редактирования существующего ресурса для изменения его типа или настройки тип ресурса для использования в параметрах URL.

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

Предоставляемые ядром политики доступа «Администратор», «Редактор содержимого» и «Разработчик» были обновлены и теперь включают эти разрешения по умолчанию. Если у вас есть собственные политики и вы ожидаете, что ваши пользователи смогут управлять статическими ресурсами, веб-ссылками или символическими ссылками, вам необходимо добавить следующие разрешения: edit_weblink, edit_symlink, edit_static_resource, delete_weblink, delete_symlink, delete_static_resource. Также требуются общие разрешения edit_document и delete_document.

[[++table_prefix]] в @SELECT TV параметрах

Если бы вы использовали [[++table_prefix]] в TV параметрах, в 2.8.2 это нужно заменить на [[+PREFIX]]. #15695 В 2.8.3 [[++table_prefix]] плейсхолдер восстановлен. #15714

Пользовательские темы диспетчера

Если вы используете настраиваемую тему менеджера, вы можете обнаружить, что менеджер больше не работает после обновления. В консоли разработчика могут появляться различные сообщения об ошибках, которые являются результатом повышенной безопасности при загрузке конфигурации. (#15644).

Найдите в собственной теме файл header.tpl (например manager/templates/mytheme/header.tpl) и замените modx.config.js.php ссылку на сценарий из:

<script src="{$_config.connectors_url}modx.config.js.php?action={$smarty.get.a|default|htmlspecialchars}{if $_ctx}&wctx={$_ctx}{/if}"></script>

к следующему, включая предоставление токена HTTP_MODAUTH:

<script src="{$_config.connectors_url}modx.config.js.php?action={$smarty.get.a|default|htmlspecialchars}{if $_ctx}&wctx={$_ctx}{/if}&HTTP_MODAUTH={$_authToken|default|htmlspecialchars}"></script>

Support the team building MODX with a monthly donation.

The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.

Backers

  • modmore
  • STERC
  • Digital Penguin
  • Jens Wittmann – Gestaltung & Entwicklung
  • Fabian Christen
  • Dannevang Digital
  • Sepia River Studios
  • Chris Fickling
  • CrewMark
  • deJaya
  • eydolan
  • Lefthandmedia
  • Murray Wood
  • Following Sea
  • Anton Tarasov
  • Stéphane Jäggi
  • Raffy
  • Snow Creative
  • A. Moreno
  • Nick Clark
  • JT Skaggs
  • Helen
  • YJ
  • krisznet
  • Richard
  • Yanni

Budget

$306 per month—let's make that $500!

Learn more