Последние темы


Критическая уязвимость MODX <=2.6.4

  • Если вы ещё не обновили MODX на версию 2.6.5, очень рекомендую это сделать. Не откладывайте на завтра! Если ваш сайт ещё работает, как минимум сделайте резервную копию файлов.
    Подробности здесь:
    https://mailchi.mp/modx/upgrade-your-modx-revolution-sites-nowcritical-security-vulnerability

    Как работает вирус:
    Во все js и json файлы сайта внедряется вредоносный код, который делает редиректы с вашего сайта и создает айфремы. В корневой папке создаются файлы dbs.php или install.php.

    После обновления MODX не забудьте удалить все распаковынные дополнения (папки) в core/packages/.

    Скрипт для автоматической очистки JS файлов:

    <?php
    
    ini_set('display_errors', 1);
    error_reporting(E_ALL);
    
    $dirPath = __DIR__ . '/assets';// Папка, которую нужно очистить
    
    function getDirContents($dir, $extArr = [], &$results = []){
        $files = scandir($dir);
        foreach($files as $key => $value){
            $path = realpath($dir . DIRECTORY_SEPARATOR . $value);
            $ext = pathinfo($path, PATHINFO_EXTENSION);
            if(!is_dir($path)) {
                if (empty($extArr) || in_array($ext, $extArr)) {
                    $results[] = $path;
                }
            } else if($value != "." && $value != "..") {
                getDirContents($path, $extArr, $results);
            }
        }
        return $results;
    }
    
    $count = 0;
    $files = getDirContents($dirPath, ['js', 'json']);
    
    foreach ($files as $filePath) {
        $ext = pathinfo($filePath, PATHINFO_EXTENSION);
        if(strpos(file_get_contents($filePath), 'var _0x2515') !== false) {
            if ($ext === 'json') {
                file_put_contents($filePath, '{"error": "Файл был инфицирован."}');
            } else {
                file_put_contents($filePath, 'console.log("Файл был инфицирован.");');
            }
            $count++;
        }
    }
    
    echo "Очищено {$count} инфицированных файлов.";
    
    

    Загрузить в корневую папку и запустить. Сделано только для моего случая, возможно у вас другой вирус.

  • @andchir это тема с документацией случилась?

  • Участник @wizzzout написал в Критическая уязвимость MODX <=2.6.4:

    @andchir это тема с документацией случилась?

    Сейчас у меня на сервере АД творится. Будьте осторожны 🙂 Из-за MODX, похоже, пострадали все сайты, кроме этого форума. Полезно создавать отдельного юзера для каждого сайта 🙂

    PHP время от времени отрубается на сервере, логи пока не смотрел.

  • @andchir есть какая-нибудь офлайн версия документации? нужно бы на гитхаб выложить чтобы такого рода проблем не было

  • Участник @wizzzout написал в Критическая уязвимость MODX <=2.6.4:

    @andchir есть какая-нибудь офлайн версия документации? нужно бы на гитхаб выложить чтобы такого рода проблем не было

    На первой странице сайта wiki.modx-shopkeeper.ru было написано:

    Самая актуальная документация всегда идет в комплекте с компонентом. Её можно увидеть при установке (вкладка «Инструкция»), после установки можно нажать на кнопку «Посмотреть детали» в списке пакетов. Или в файле - /core/components/[название компонента]/docs/readme.txt.

 

Последние комментарии

  • Если на Formit повесить хук на отправку данных (в конце списка хуков) в платежную систему и в этом хуке (сниппете) пытаться читать значения shk.id, shk.price, то они содержат значения предыдущего заказа.

    Всё в соответствии с документацией, так и задумано.

    Тоже самое, если вызывать отправку данных через плагин и событие OnSHKSaveOrder.

    А зачем в плагине читать значение плейсхолдера, если там есть переменная $order_id?

    Читать далее
  • R

    Добрый день, коллеги.
    Использую MODx Rev 2.7.1, Shopkeeper 3.2.7.
    Вопрос следующий. Страница оформления заказа, вызываю FormIt, затем [[!$shopOrderFormCart]]. В форме заполняются все необходимые поля, для того чтобы передать в платежную систему. Если на Formit повесить хук на отправку данных (в конце списка хуков) в платежную систему и в этом хуке (сниппете) пытаться читать значения shk.id, shk.price, то они содержат значения предыдущего заказа. Тоже самое, если вызывать отправку данных через плагин и событие OnSHKSaveOrder. Пробовал из скрипта обновлять страницу, не помогает. Актуальная информация появляется в плейсхолдерах только если перенаправлять из страницы оформления заказа на другую html страницу и там читать эти плейсхолдеры. Как получить актуальные значения без пересылки на дополнительную страницу?
    Спасибо.

    Читать далее
  • Читать далее
  • А где скачать это чудо компонент?

    Читать далее