Сергей Водолагин

Сергей Водолагин

С нами с 22 марта 2014; Место в рейтинге пользователей: #198

Потенциальная уязвимость при получении объекта xPDO

Привет, друзья! Настало время подвести некоторые итоги по новости недельной давности.

Если кто не в курсе, в xPDO, а соотвественно, и в MODX обнаружилась уязвимость, позволяющая проводить слепые SQL инъекции и ломать сайты. Точнее как, обнаружилась… Всегда там была, и кому нужно — давно это знали.

Суть в том, что при получении объекта xPDO можно указать вторым параметром любую строку, и она не фильтруется.
$modx->getObject('modResource', 'тут любой SQL код')
Этот код выполнит произвольный SQL запрос, потому что «фича, а не бага».

Правда, про эту фичу нет ни слова в документации, где говорят только о
The criteria can be a primary key value, an array of primary key values (for multiple primary key objects) or an xPDOCriteria object.
и никаких сырых SQL выражений.
Василий Наумкин
13 ноября 2016, 15:37
modx.pro
11
5 406
+30

msOneClick - «Купить в один клик»

Приложение создает заказ в интернет-магазине minishop2, а так же может отправлять заказ в виде письма на указанный e-mail адрес.


Для работы необходимо вставить сниппет на страницу с товаром [[!msOneClick]] и у вас появится кнопка Купить в 1 клик

Демо сайта

Андрей Степаненко
10 ноября 2016, 19:15
modx.pro
8
12 757
+13

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

Сильно в детали лезть не буду, просто скажу, что сейчас любой MODX Revo сайт потенциально уязвим. Дыра позволяет выполнить SQL-инъекции, в том числе с созданием на сайте привилегированных пользователей.
Базовые методы противодействия: подмена дефолтных системных папок (особенно connectors) и, главное — смена префикса таблиц. Так как далеко не все это делают, то можно сказать, большинство сайтов в зоне опасности. Кто хочет ощутить это на себе, может в комментах написать ссылку на сайт.

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

P.S. И еще заповедь: не пускайте никого в админку, даже с самыми минимальными правами. Это практически 100% гарантия взлома при желании.
Fi1osof
05 ноября 2016, 07:50
modx.pro
18
42 404
+30

Fenom + pdoMenu и динамический parent

Добрый вечер,

можете подсказать, почему не работает такой вывод?

<ul class="subcategories">
{$_modx->runSnippet('!pdoMenu', [
'parents' 	=> '{if $_modx->resource.parent|in:[10,20,30]}{$_modx->resource.parent}{else}{$_modx->resource.id}{/if}',
'showHidden' 	=> '0',
'level' 	=> '1',
'tplOuter' 	=> '@INLINE {$wrapper}',
'tpl' 		=> '@INLINE <li{$classes}><a href="{$link}" {$attributes}>{$menutitle}</a>{$wrapper}</li>',
'showLog' => 0
])}
</ul>
но так работает:

<ul class="subcategories">
[[!pdoMenu?
&parents=`{if $_modx->resource.parent|in:[23,27,24,26,25,29,30,28]}{$_modx->resource.parent}{else}{$_modx->resource.id}{/if}`
&showHidden=`0`
&level=`1`
&tplOuter=`@INLINE [[+wrapper]]`
&tpl=`@INLINE <li[[+classes]]><a href="[[+link]]" [[+attributes]]>[[+menutitle]]</a>[[+wrapper]]</li>`
]]
</ul>
Andrei D.
31 октября 2016, 17:57
modx.pro
6
6 970
+1

Загрузка заказов ms2, Tikets на стартовой странице

При сравнении «специализированных» cms для интернет магазинов и minishop заметил общую тенденцию у первых выводить при входе в админку список заказов. После недолгой переписки с замечательным исполнителем Павлом Гвоздем возникло такое замечательное и гениальное по простоте решение:
заходим в настройки системы, далее в фильтре по ключу отыскиваем 2 значения:
1. welcome_action меняем с welcome на mgr/orders
2. welcome_namespace с core на minishop2
и вуаля на чистом клиенте отображается список заказов, очень удобно
Здоров Александр
11 октября 2016, 20:28
modx.pro
66
6 730
+27

[tagElementPlugin] Хоткеи для чанков и копирование

Хочу обрадовать всех кто просил добавить возможность открывать чанки, указанные в параметрах сниппета, без плясок с добавлением знака $. Для этого я добавил 2 хоткея — Ctrl+Alt+C и Ctrl+Shift+Alt+C. Первый для открытия чанка в модальном окне, второй для перехода на страницу чанка. Выделять нужно только название.
Вторая фича — это кнопка «Сохранить как» в модальном окне для быстрого копирования.


Сергей Шлоков
30 сентября 2016, 19:12
modx.pro
5
2 645
+21

Выбор в скрипте создания сайта: PHP 5/7, HTTP(S)

При настройке сервера по этой инструкции для создания нового сайта очень удобно пользоваться приложенным скриптом.

В процессе эксплуатации сервера с ним произошли основные метаморфозы:
1) Обновлен nginx до версии 1.10 по официальной инструкции.
2) Установлен PHP7 по этой инструкции. Спасибо Сергею Пожидаеву.
3) Установлены скрипты Let's Encrypt по этой инструкции
Воеводский Михаил
28 сентября 2016, 14:02
modx.pro
17
2 890
+6

Сохранение правильного конфига при переносе сайта

Самый простой способ перенести сайт с одного хостинга/аккаунта на другой — скопировать заранее конфиги в новом месте для сайта, чтобы потом руками не менять везде пути и логин/пароль к БД. Можно делать с помощью mc, как описано в разделе помощи Modhost, а можно руками в консоли писать команды. Или даже с помощью файлового менеджера через (S)FTP.

А можно еще проще, если есть доступ к SSH — запустить скрипт и выбрать режим работы:
1) Сохранить конфиги
2) Восстановить конфиги
Воеводский Михаил
28 сентября 2016, 12:48
modx.pro
4
2 651
+4

Ошибка работы phpThumb в MODX 2.5.1

В MODX 2.5.1 обновили phpThumb, после чего некоторые дополнения стали неверно работать с картинками.

Проблема встречается на серверах с включенным open_basedir (запрет скриптам выходить из директории сайта) из-за того, что авторы MODX не указывают временную директорию при инициализации.

Для исправления нужно добавить
$this->setParameter('config_temp_directory',$cachePath);
на 34 строке файла core/model/phpthumb/modphpthumb.class.php

Вторая проблема касается уже непосредственно дополнений, таких как phpthumbon. Конкретно он не вызывает метод initialize() при запуске класса modPhpThumb, в результате чего настройки директорий вообще не выставляются.
Василий Наумкин
16 сентября 2016, 13:22
modx.pro
14
7 559
+11

[fullCalendar] Пример системы записей

Работая над обновлением компонента fullCalendar и глубже вникая в api яваскрипт библиотеки fullCalendar, получил очень большое впечатление от её возможностей. А с впечатлением пришло и понимание, что её применение можно расширить. Например, она достаточно легко позволяет реализовать несложную систему записей. Вариаций может быть достаточно много. Я хочу продемострировать один из примеров такой системы в стиле EMIAS (запись к врачу).
Сергей Шлоков
09 августа 2016, 06:17
modx.pro
4
2 623
+5