Обновление до 2.8.2 и 2.8.3 (и новее)
Последнее обновление Jun 2nd, 2021 | История страницы | Улучшить эту страницу | Сообщить о проблеме
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
Budget
$306 per month—let's make that $500!
Learn moreРелизы MODX 2.8.2 и 2.8.3 содержат несколько улучшений безопасности, которые могут отрицательно повлиять на существующие сайты. В этом документе подробно описаны возможные последствия и способы их устранения.
Примечание: выпуск v2.8.2 содержал несколько ошибок. В частности, возможность отображать статический HTML-код была непреднамеренно удалена и редакторы форматированного текста, такие как TinyMCE, больше не могли отображать медиа-браузер. Эти проблемы были исправлены в версии 2.8.3, выпущенной 28 мая.
Статические пути к ресурсам¶
После обновления до 2.8.2 все статические ресурсы по умолчанию ограничены каталогом ресурсов, если вы предварительно не настроили resource_static_path
. Статические ресурсы, расположенные где-либо еще (ядро, вне корневого веб-узла и т.д.), выдадут 404 (#15656).
Если вы используете статические ресурсы и храните их где-нибудь еще, у вас есть несколько вариантов:
- (Рекомендуется) Настройте системную настройку
resource_static_path
, чтобы указать абсолютный путь, по которому расположены ваши статические файлы ресурсов. Например, если вы храните свои статические файлы ресурсов вcore/files/
, измените настройку на{core_path}files/
. Если ваши статические ресурсы находятся где-нибудь в корне веб-сайта, вы можете использовать{base_path}
. - (Не рекомендуется) Включите новую системную настройку
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
Budget
$306 per month—let's make that $500!
Learn more