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


Критическая уязвимость 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.

 

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

  • Z

    Спасибо, действительно проще создать отдельно.

    Читать далее
  • Но проблема в том, что эта старая цена "дублируется" в плесхолдер "Дополнительных услуг" - [[+addit_data]].

    Можно не использовать [[+addit_data]], а выводить параметры по-отдельности.

    Цитата из документации:

    [[+shk_любой доп.параметр]] - любой доп. параметр, выбранный при добавлении товара в корзину (из [[+addit_data]]), например [[+shk_param1]].
    Если параметры сделаны в виде чекбоксов, то чтобы вывести отдельно каждый из них, нужно добавлять индекс (номер от нуля) для параметров следующих за первым.
    Пример: [[+shk_param1]], [[+shk_param1_1]], [[+shk_param1_2]] ...
    [[+shk_любой доп.параметр_price]] - цена доп.параметра. Пример: [[+shk_param1_price]].

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

    Доброго времени суток. Не могу разобраться, как передать данные migx-поля в корзину в плейсхолдер без "дублирования" в [[+addit_data]]
    Суть в чем: У меня есть 2 цены у товара (со скидкой и без скидки) Форма для отправки в корзину:

    <form action="[[~[[*resource_id]]? &scheme=`abs`]][[*alias]].html" method="post"> <input type="hidden" name="shk-id" value="[[*id]]" /> <input type="hidden" name="shk-name" value="[[*pagetitle]]" /> <input type="hidden" name="price_old__[[*id]]__add" value="[[*price_old]]" /> <input type="hidden" name="shk-count" value="1" /> <div class="product-price"> Цена: <span class="shk-price">[[!*price:shk_curr_rate:num_format]]</span> Старая цена - <span class="shk-price-old">[[+price_old]]</span> [[!+shk_currency]] </div> <div class="padding-lr-30"> <h5>Дополнительные услуги</h5> [[*param1]] </div> <div class="product-price"> <button class="btn btn-lg btn-primary" type="submit" class="shk-but">В корзину</button> </div> </form>

    Данные со "старой ценой" в корзину попадают нормально и выводится в нужном месте в плейсхолдере:
    [[+shk_price_old]]
    Но проблема в том, что эта старая цена "дублируется" в плесхолдер "Дополнительных услуг" - [[+addit_data]]. Как сделать чтобы старая цена не выводилась в [[+addit_data]]? Или может я как то не правильно передаю MIGX-параметр в корзину ? Заранее спасибо.

    Читать далее
  • Фотографии, как я понял, это второй вопрос. Я по нему пока ничего не отвечал и не просил информации. Это не отменяет того, что в вашем конфиге есть ошибка, о которой я писал выше. Не нужно задавать разные вопросы в одной теме, чтобы не было путаницы.
    http://forum.modx-shopkeeper.ru/topic/15/рекомендации-по-оформлению-темы-с-вопросом

    Читать далее