Патч для модуля «МойСклад: Гибкий обмен заказами по API»
Патч актуален, если ваша версия модуля ниже 3.2.0
Патч безопасности для модуля rbs.moysklad. Применяется, если у вас не активна поддержка и нет возможности обновить модуль до актуальной версии целиком. При активной поддержке достаточно просто обновить модуль — все исправления уже включены в новые версии.
Скачать патч
Реальное имя файла — z_ms_orders_patch.php. Имя файла можно оставить как есть или переименовать по своему усмотрению — на работу патча это не влияет.
Как применить патч
- Загрузите файл патча в корень сайта. Это можно сделать через файловый менеджер в админке «1С-Битрикс» или по FTP. Файл должен лежать в корневой папке сайта (там же, где находится папка
/bitrix/). - Откройте файл в браузере по адресу вашего сайта, например:
Если вы переименовали файл — используйте новое имя в адресе.
https://ваш-сайт/z_ms_orders_patch.php - Авторизуйтесь под администратором сайта. Патч доступен только администратору; всем остальным он отдаёт
403 Forbiddenи ничего не выполняет. - Просмотрите отчёт (предпросмотр). Откроется страница со списком исправлений и их статусом — что будет применено, что уже исправлено, а что неприменимо к вашей версии. На этом этапе файлы ещё не меняются.
- Нажмите «Применить». Патч создаст резервную копию изменяемых файлов и внесёт правки.
- Удалите файл патча с сайта после применения. После того как вы убедитесь, что модуль работает корректно, можно удалить и папку с резервной копией.
Реальный путь к файлу легко построить из имени z_ms_orders_patch.php: например https://ваш-сайт/z_ms_orders_patch.php. Если файл загружен в подпапку — укажите её в адресе.
Что делает патч
Патч — это самостоятельный PHP-скрипт с веб-интерфейсом, который безопасно накатывает исправления безопасности на уже установленный модуль. Основные принципы его работы:
- Доступ только администратору. Скрипт поднимает ядро «1С-Битрикс» и проверяет права; для неавторизованных и не-администраторов возвращается
403. - Предпросмотр по умолчанию (dry-run). При открытии файлы не изменяются — сначала показывается отчёт. Запись происходит только после нажатия кнопки «Применить».
- Правки по сигнатуре кода. Исправления ищутся по фрагментам уязвимого кода, а не по версии файла, поэтому патч работает на разных версиях модуля.
- Идемпотентность. Каждое правило умеет распознать уже применённое исправление и пропустить его. Повторный запуск безопасен.
- Признак применимости. Если в вашей версии нужного участка кода нет, правило помечается как «неприменимо» и ничего не трогает.
- Резервная копия и откат. Перед записью каждый изменяемый файл копируется в отдельную папку бэкапа. На странице есть кнопка «Откатить последний бэкап», которая восстанавливает файлы.
- Атомарные группы. Связанные правки применяются только комплектом — если найден не весь набор, группа целиком пропускается, чтобы не сломать рабочие сценарии (например, «Разовый импорт» или «Бэкап»).
Какие исправления входят в патч
Патч закрывает ряд проблем безопасности в модуле, в том числе:
- защита чтения и записи лог-файлов от выхода за пределы каталога (path traversal);
- сравнение соли веб-хука в постоянном времени и явный отказ при пустой соли;
- проверка прав и CSRF-токена (
sessid) для AJAX- и диагностических действий, операций бэкапа и запуска процессов; - ограничение запускаемых процессов белым списком реальных файлов;
- экранирование выводимых данных в формах и скриптах (защита от XSS);
- исключение служебного license-хеша из лога модуля.
Подробное техническое описание каждого исправления не требуется для применения патча — достаточно выполнить шаги выше. Скрипт сам определит, что нужно применить именно в вашей версии.