Срочные исправления безопасности в MODX 2.5.2

Привет, друзья! У меня для вас отличная новость!

Команда MODX работала всю ночь не покладая рук, чтобы подготовить для нас срочный выпуск MODX 2.5.2, закрывающий все известные на сегодня уязвимости.
  • Скрыты критичные системные настройки [#13170]
  • Запрет возможности локального подключения файлов (LFE) [#13177]
  • Запрет возможности подмены пути при запуске $modx->runProcessor [#13176]
  • Запрет неавторизованного доступа к процессорам [#13175]
  • Запрет подмены пути в параметре action объекта modConnectorResponse [#13173]
  • Запрет слепой SQL инъекции при получении xPDOObject [подробности]

и несколько других, не касающихся безопасности, изменений, которые вы можете увидеть в changelog.

В первую очередь за улучшения безопасности нужно благодарить Евгения Борисова и Николая Ланец. Надеюсь, что практика быстрого выпуска исправлений безопасности продолжится и впредь.

Обновление уже доступно для загрузки с официального сайта и обновления на modhost.pro

Лично я уже обновил все сайты (включая магазин и панель управления хостингом), чем и вам рекомендую заняться прямо сейчас!

P.S. Обратите внимание, что из-за многочисленных изменений некоторые дополнения могут работать некорректно. Я уже выпустил новые версии pdoTools, ms2Gallery, miniShop2 и Uploadify.
Василий Наумкин
15 ноября 2016, 03:19
modx.pro
1
8 805
+24

Комментарии: 90

Антон
Антон
15 ноября 2016, 06:45
0
Сейчас, как только Уткин свой simpleUpdater обновит, так сразу…
Fi1osof
15 ноября 2016, 07:07
0
В первую очередь за улучшения безопасности нужно благодарить Евгения Борисова и Николая Ланеца. Надеюсь, что практика быстрого выпуска исправлений безопасности продолжится и впредь.
А я надеюсь, что будет чуть больше культуры в общении как здесь, так и за пределами. А то из списка как минимум мое это:
Скрыты критичные системные настройки [#13170]
Запрет возможности подмены пути при запуске $modx->runProcessor [#13176]
Запрет неавторизованного доступа к процессорам [#13175]
Запрет подмены пути в параметре action объекта modConnectorResponse [#13173]
Плюс довольно объемное общение с MODX team в личке. А в ответ получаешь такое.
Так-то пофиг, а так-то вообще не располагает. С учетом того, что Женя жаловался, что его за его же труды не поблагодарили (как минимум), особенно странно видеть такое поведение с его стороны. Постараюсь больше Жени не касаться вообще никаким боком.
    Евгений Борисов
    15 ноября 2016, 07:34
    +8
    Постараюсь больше Жени не касаться вообще никаким боком.
    Как-то вообще не располагает, когда ты предлагаешь фиксы которые вообще не фиксы.
    Постараюсь больше не реагировать на твои заскоки. Вводи и дальше людей в заблуждение.
      Сергей Шлоков
      15 ноября 2016, 07:57
      +11
      Справедливости ради, кабы Николай не поднял эту волну, так и сидели бы ровно за «стеклянной дверью». Да и тебе профит вон какой прилетел. :) И ребят из MODX попинали. 2 года назад ты один их не смог растолкать. А щас толпой навалились и результат почти мгновенный. Даже Марк по-русски заговорил :)) Прогресс на лицо. )
        Сергей Шлоков
        15 ноября 2016, 08:39
        +2
        Добавлю ещё, что сила, конечно, в правде, но в сильной правде силы больше :))
      Сергей Шлоков
      15 ноября 2016, 08:02
      +2
      Запрет возможности подмены пути при запуске $modx->runProcessor [#13176]
      Запрет неавторизованного доступа к процессорам [#13175]
      Запрет подмены пути в параметре action объекта modConnectorResponse [#13173]
      Может через пару месяцев напишешь про то, как это можно было сделать? Интересно. Ведь даже авторы MODX не сообразили.
        Евгений Борисов
        15 ноября 2016, 08:34
        +8
        $_REQUEST['action'] = '../../new/action';
        $_REQUEST['action'] = '....//....//new/action';
          Сергей Шлоков
          15 ноября 2016, 08:39
          0
          Так просто? Мда.
            Fi1osof
            15 ноября 2016, 22:45
            0
            Для некоторых не все так просто. Есть системные процессоры, которые проверяют авотризацию, и которые обходятся с применением этой уязвимости:
            Запрет неавторизованного доступа к процессорам [#13175]
        Александр
        15 ноября 2016, 10:09
        +2
        дай Вам бог здоровья побольше)) И Вам, и Евгению, спасибо огромное!!!
          Paul B.
          15 ноября 2016, 13:22
          0
          Николай, благодарю!
          Василий Столейков
          15 ноября 2016, 09:45
          1
          +4
          Лично я уже обновил все сайты (включая магазин и панель управления хостингом)
          То-то сегодня утром тут в сообществе последние записи были 2012-го года )))

          В первую очередь за улучшения безопасности нужно благодарить Евгения Борисова и Николая Ланеца.
          Ну да, себя же неудобно благодарить, хотя и ты внёс очень большой вклад в эту волну, спасибо и тебе!

          Очень радостная новость, спасибо за ваши старания!
            Zulya
            15 ноября 2016, 10:17
            +2
            Привет. В этом обновлении решили проблему с уязвимостью, которая была описана тут modx.pro/security/10345-blind-sql-xpdo/? Если да, то классно!
              Mark Hamstra
              15 ноября 2016, 12:44
              +5
              Да, это одно из исправлений xPDO. Разработчики должны еще убедиться, что ввод данных пользователем продезинфицировать, хотя.
              ///---///
              Yes, that's one of the xPDO fixes. Developers should still make sure user input is sanitised though.
                Сергей Шлоков
                15 ноября 2016, 13:48
                +2
                Dear Mark, please, don't use the Google translater. It makes such a funny translation so some times it's very difficult to understand. So we all have to read the English version of your comment to understand what you mean. :))
                  Василий Наумкин
                  15 ноября 2016, 13:52
                  0
                  I believe it is because of great respect to the russian community.

                  And our english comments looks like this, by the way =)
                    Сергей Шлоков
                    15 ноября 2016, 13:56
                    +1
                    Ja, ja. Das ist fantastisch für uns. ))

                    П.С. Прямо мастер Йода ))
                    Если официальный анонс должен получить другое имя добавил, что мы пропустили, пожалуйста, дайте мне знать, и я постараюсь, чтобы заставить кого-то обновить, что.
                    Сергей Шлоков
                    16 ноября 2016, 07:20
                    +2
                    Кстати, «looks like this» значит «похоже на это», т.е. на что-то конкретное. Если ты имел ввиду «Выглядят похоже», то правильнее сказать «comments look similar». Если «Похожи как 2 капли воды» — look the same.
                    Помню это ещё со школы. А сейчас могу сто раз пытаться запомнить какое-нибудь слово, на следующий день и не вспомню. :(

                    П.С. Ну и окончание -s используются только для 3-го лица в единственном числе. Comment looks, comments look. ))
              Василий Столейков
              15 ноября 2016, 10:20
              2
              +2
              Заметил баг в новой версии MODX — в управлении пакетами при нажатии на кнопку Посмотреть детали не подгружаются версии установленных пакетов:



              Раньше я так постоянно чистил систему от старых ненужных версий…
                Василий Столейков
                15 ноября 2016, 10:21
                0
                Почему-то картинка не обрабатывается уже — просто вставил код из файлохранилища…
                  Василий Наумкин
                  15 ноября 2016, 12:29
                  0
                  Да это я сдуру обновил там Uploadify с перезаписью всех чанков — отчего то решил, что они там совсем стандартные.

                  Поэтому сначала ссылка на авторизацию пропала, а щас вот это. Поправлю в течении часа.
                  Василий Наумкин
                  15 ноября 2016, 11:27
                  0
                  Упс
                    Сергей Шлоков
                    15 ноября 2016, 12:12
                    2
                    +4
                    Это из-за этого. Можно закомментировать пока не исправят. Не думаю, что это повлияет на безопасность.
                      Кудашев Сергей
                      24 ноября 2016, 12:06
                      +1
                      Если нужно, чтобы эта опция снова заработала до нового релиза, то необходимые исправления можно посмотреть тут. Всего одна строчка :)

                      Или ждать нового релиза, исправление уже добавили в новую ветку.
                      Zulya
                      15 ноября 2016, 10:22
                      0
                      Хочу обновить сайт с помощью приложения UpdateModx.
                      Когда выбираю последнюю версию, и нажимаю обновить, на странице выводится такое сообщение:
                      ../modx.zip is empty — download failed
                      В чем может причина и как можно решить, подскажите?
                      P.S Когда первый раз устанавливала Modx revo, использовала версию Advanced для установки.
                        Илья Уткин
                        15 ноября 2016, 10:41
                        0
                        Попробуйте simpleUpdater вместо UpdateModx
                          Zulya
                          15 ноября 2016, 10:49
                          0
                          Хорошо. Попробую. Спасибо, Илья.
                            Константин Обухов
                            15 ноября 2016, 11:33
                            0
                            Подскажите откуда качать его? С modx.com или где-то в другом месте?
                              Илья Уткин
                              15 ноября 2016, 14:03
                              0
                              Да, из официального репозитория modx.com
                          Вася
                          15 ноября 2016, 10:53
                          +2
                          Странно, что не поблагодарили дядю Зенита. Ведь он на практике доказал, что сложный префикс не поможет защитить сайт.
                            Александр
                            15 ноября 2016, 11:00
                            0
                            Увы, даже поблагодарив, он не сможет узнать или ответить на данную благодарность…
                              Василий Наумкин
                              15 ноября 2016, 11:29
                              +3
                              Не надо вводить общественность в заблуждение.

                              Я поблагодарил его лично — у него есть второй аккаунт, вполне рабочий.
                                Александр
                                15 ноября 2016, 12:14
                                0
                                Пардоньте, только недавно прочитал о том, что он доказал свои слова о слепой иньекции…
                              Василий Наумкин
                              15 ноября 2016, 11:28
                              +17
                              Потому что дядя Зенит не дал ничего, кроме самого факта возможности подбора префикса.

                              Дяде Васе пришлось самому выискивать уязвимые места в логах, читать теорию и проверять её на практике. А потом доказывать, насколько это опасно дяде Джейсону и дяде Марку при помощи дяди Жени, который написал реальный пример использования уязвимости.

                              Ну и код для закрытия уязвимости тоже написал дядя Вася.

                              Так что про дядю Зенита никто в MODX не слышал, зато его благодарим мы, всем сообществом.
                                Владимир
                                15 ноября 2016, 12:08
                                +5
                                А дяде Васе спасибо за все и отдельный поклон за терпение.
                                  Mark Hamstra
                                  15 ноября 2016, 12:50
                                  +7
                                  Я благодарен всем, кто способствовал в получении этих уязвимостей фиксированных. Если официальный анонс должен получить другое имя добавил, что мы пропустили, пожалуйста, дайте мне знать, и я постараюсь, чтобы заставить кого-то обновить, что.
                                  ///---///
                                  I'm thankful to everyone that contributed into getting these vulnerabilities fixed. If the official announcement should get another name added that we missed, please let me know and I'll try to get someone to update that.
                                    Александр Москвин
                                    15 ноября 2016, 13:05
                                    0
                                    ну так если бы не он никто бы не парился, префиксы сменили бы и всё.
                                    Он доказал, что нужно людей в первую очередь слушать и слышать.
                                    А мог бы сломать всё к чертям, быть плохим и злым.
                                      Василий Наумкин
                                      15 ноября 2016, 13:12
                                      +7
                                      Ну так купи ему пива, в чём проблема-то?

                                      Или я должен написать ему любовное письма и поблагодарить за то, что он взломал мой сайт, вместо подробного объяснения самого алгоритма взлома?

                                      Еще раз: я всё это выяснял самостоятельно, консультировал меня Евгений Борисов. Правоту Зенита я признал и выразил своё восхищение его навыками (но не манерами). Ни строчки кода в новую версию MODX он не прислал.

                                      Твоё беспокойство судьбой Зенита лично я понять не могу. Среди меня бытует мнение, что он может постоять за себя самостоятельно, без публичных адвокатов.
                                        Александр Москвин
                                        15 ноября 2016, 14:39
                                        -10
                                        опять негативно ответил, а зря
                                        «нужно людей в первую очередь слушать и слышать».
                                        За такое твоё отношение к людям, на его месте я поступил по другому.
                                          Василий Наумкин
                                          15 ноября 2016, 14:44
                                          +3
                                          У меня такое ощущение, что люди в нашей стране утрачивают логическое мышление и способность воспринимать письменную речь.

                                          Это печально.
                                            Александр
                                            15 ноября 2016, 22:12
                                            -1
                                            xD Увы, но скорость деградирования нашего населения поражает. После нескольких лет работы в интернет магазине, я это испытал на себе (общение с клиентами). Теперь, когда заказчики спрашивают «Как сделать?» я им отвечаю «Как Вы бы сделали для умственно-отсталых детей?».

                                            Это и правда печально.
                                              Александр Москвин
                                              16 ноября 2016, 13:08
                                              -1
                                              я про другое имел ввиду «надменное» поведение.
                                              Не однократно на мои ответы (пусть дублирующие) была такая реакция.
                                              Но раз минус, значит минус.
                                              Я видел эту тему (с зенон) и видел всю надменность людей, высказал своё недовольство. Но всё решили, всё поправили.
                                              Проще надо быть и люди потянутся.
                                                Александр
                                                29 ноября 2016, 01:18
                                                0
                                                комментарий был направлен не лично к Вам
                                Raimei
                                15 ноября 2016, 11:42
                                0
                                Спасибо. Просто спасибо
                                  Александр Москвин
                                  15 ноября 2016, 13:04
                                  0
                                  Странно, что modx раньше не ломали с такой уязвимостью.
                                  Круто, что сделали быстрое обновление)
                                    Василий Наумкин
                                    15 ноября 2016, 13:05
                                    +6
                                    Кому надо — прекрасно ломали и молчали в тряпочку, чтобы не портить себе бизнес.
                                      Александр Москвин
                                      15 ноября 2016, 13:09
                                      +2
                                      но тем не менее, если бы не Вы ничего бы не было и так бы и дальше ломали, за это огромное спасибо)
                                        Василий Наумкин
                                        15 ноября 2016, 13:23
                                        +10
                                        Да все молодцы, хватит уже выяснять — кто больше.

                                        Закрыты все известные уязвимости в MODX Revolution и это само по себе очень круто. Лично я, наконец-то, смогу спокойно поспать, а то очень нервная выдалась неделя.
                                          Александр
                                          15 ноября 2016, 13:48
                                          0
                                          На счет спокойствия Вы правы, спасибо Вам еще раз =)
                                          Но прошу заметить, что это все только известные уязвимости. Вот бы вести отдельный лог по безопасности сайта и в случае проникновения хакера — отдавать лог разработчикам на диагностику…
                                            Василий Наумкин
                                            15 ноября 2016, 13:50
                                            +1
                                            Как ты планируешь вести отдельный лог по безопасности?
                                            Как отличать плохие запросы от хороших?

                                            А так — у каждого нормального сайта ведётся лог посещений и ошибок, именно через них я и разбирался с тем, что делал zenit.
                                    Bluetenstadt
                                    15 ноября 2016, 13:39
                                    +5
                                    Все красавчики.
                                      Владимир
                                      15 ноября 2016, 13:56
                                      0
                                      Безопасность — главное!
                                      Спасибо всем, полегчало на душе.

                                      Мелкая, но досадная ерунда, тут уже писали о ней, все пакеты при обновлении исчезли из вкладки «Загруженная версия», где можно было удалять прежние версии.
                                        Кудашев Сергей
                                        24 ноября 2016, 12:07
                                        +1
                                        Если нужно, чтобы эта опция снова заработала до нового релиза, то необходимые исправления можно посмотреть тут. Всего одна строчка :)

                                        Или ждать нового релиза, исправление уже добавили в новую ветку.
                                          Владимир
                                          24 ноября 2016, 12:11
                                          +1
                                          Да, я видел ваш патч, спасибо!

                                        r5uY40
                                        15 ноября 2016, 20:12
                                        +3
                                        Огромное спасибо всем, кто обнаружил, доказал важность и любым способом повлиял на устранение брешей в безопасности! И, если это имеет хоть какое то значение, Евгений и Николай, пожалуйста, не ссорьтесь. В результате вы сработали как единая команда. Каждый отвечал за свой участок работ и результат достигнут. Спасибо!
                                          Fi1osof
                                          15 ноября 2016, 22:51
                                          0
                                          Вообще, с этим обновлением связаны не только фиксы безопасности, но и серьезная деградация метода sortby(). Теперь не получится выполнить типа sortby («1, 2 ASC, modxResource.id») или типа того. Комментарий. Конечно, мало это кого затронет, но ограничения есть. Надо будет дорабатывать этот метод.
                                            Григорий Коленько
                                            16 ноября 2016, 00:59
                                            0
                                            Ого. Как теперь с этим запросом исхитряться?
                                              Fi1osof
                                              16 ноября 2016, 03:56
                                              +1
                                              А нет, погорячился. Они прислушались ко мнению и в итоге не стали жестко эскейпить название колонки (первый вариант был такой), а просто стали проверять на валидность. Но и здесь, кстати, тоже курьез есть :) Теперь нельзя использовать названия колонок, содержащих слово union. К примеру, вот такой вариант приведет к ошибке: $q->sortby(«unionition»);
                                              SQL injection attempt detected in sortby column; clause rejected
                                                Евгений Борисов
                                                16 ноября 2016, 04:01
                                                +2
                                                $query = $modx->newQuery(modResource::class)
                                                    ->sortby('menuindex','ASC')
                                                    ->sortBy('pagetitle', 'ASC');
                                                
                                                $out = $modx->getCollection(modResource::class, $query);
                                              Рустам С
                                              18 ноября 2016, 14:45
                                              0
                                              Обновился спасибо!
                                              Но получил кучу проблем… пока с ходу кажется что это pdotools
                                              У меня уходит вся память и сервер в 504 и тп после обновления, через 2 минуты после запуска.
                                              Происходит переполнение памяти на боевом сервере (не заметно если тестировать локально, тк нет нагрузки)

                                              Вычислил что так происходит если вызвать внутри pdoResources, еще раз например pdoResources
                                              и это вроде для любого компонента на pdotools

                                              Ни кто не замечал?
                                                Пётр Молчанов
                                                18 ноября 2016, 16:04
                                                +2
                                                Все обновились без проблем и только у тебя они возникли. Сделал бы хоть пример на тестовом сайте…
                                                  Рустам С
                                                  18 ноября 2016, 17:12
                                                  0
                                                  я могу показать, если интересно…
                                                  пока не успел потестить просто, сделаю если надо будет и отдельный тест
                                                  Василий Наумкин
                                                  18 ноября 2016, 16:41
                                                  0
                                                  pdoTools тоже нужно обновить, там есть исправление сортировки в новой версии MODX.

                                                  А так — нет, никто про такие проблемы больше пока не писал.
                                                    Рустам С
                                                    18 ноября 2016, 17:12
                                                    0
                                                    спасибо, ставил из гитхаба и магазина… пока разницы не было, думаю попробовать откатить
                                                      Это сообщение было удалено
                                                        Это сообщение было удалено
                                                          Это сообщение было удалено
                                                            Это сообщение было удалено
                                                              Это сообщение было удалено
                                                                Это сообщение было удалено
                                                                  Это сообщение было удалено
                                                                    Это сообщение было удалено
                                                                      Это сообщение было удалено
                                                                        Это сообщение было удалено
                                                                          Это сообщение было удалено
                                                                            Это сообщение было удалено
                                                                              Это сообщение было удалено
                                                                              Это сообщение было удалено
                                                                              Это сообщение было удалено
                                                                              Это сообщение было удалено
                                                                              Это сообщение было удалено
                                                                              Это сообщение было удалено
                                                                        Это сообщение было удалено
                                                                          Это сообщение было удалено
                                                                          Это сообщение было удалено
                                                                            Это сообщение было удалено
                                                                              Это сообщение было удалено
                                                                                Это сообщение было удалено
                                                            Кудашев Сергей
                                                            24 ноября 2016, 00:41
                                                            2
                                                            +2
                                                            После данного обновления в Управлении Пакетами при Просмотре деталей перестала отображаться «Загруженная версия». В error.log пишется ошибка «You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ASC, modTransportPackage.release_index DESC LIMIT 20' at line 1».

                                                            Проблема в том, что в данном обновлении в методе sortby из xpdoquery.class.php стал обязательным второй аргумент и старый код обрабатывающий пакеты перестал работать. Если кому-то нужно, чтобы эта опция заработала до нового релиза, то необходимые исправления можно посмотреть тут. Всего одна строчка :)
                                                              Алексей Смирнов
                                                              14 декабря 2016, 09:38
                                                              +1
                                                              Всем привет.
                                                              Еще кое-какая мелкая проблемка:
                                                              [[!+modx.user.id:memberof=`Administrator`:then=`Пользователь авторизирован. Имеет группу Администратор`]]
                                                              Теперь после обновления срабатывает Всегда и для авторизированных пользователей и обычных, выводя весь текст что Авторизирован, хотя плейсхолдер:
                                                              [[!+modx.user.id:memberof=`Administrator`]]
                                                              срабатывает верно: если пользователь не зарегин выводит 0, иначе 1
                                                              Но при этом есть косяк с обработкой THEN. Что посоветуете? Может быть есть кто-то повыше квалификацией и сможет объяснить, профиксить. Спасибо!
                                                                Гриборий
                                                                14 декабря 2016, 14:19
                                                                0
                                                                Попробуй добавить :else=``
                                                                  Алексей Смирнов
                                                                  16 декабря 2016, 10:09
                                                                  0
                                                                  Естессно проверял — поведение не изменилось.
                                                                    Владимир
                                                                    16 декабря 2016, 10:39
                                                                    +1
                                                                    феном вместо модификаторов, это и лучше и функциональнее
                                                                    {if $_modx->user.id == 1} *** {/if}
                                                                    (вместо == 1 нужное вам условие), а модификаторы в MODX надо забыть
                                                                    PS и в доках пора столбец с феномом в модификаторах завести
                                                                Павел Гвоздь
                                                                16 декабря 2016, 10:33
                                                                +2
                                                                Юзать Феном. :)
                                                                  Илья Уткин
                                                                  17 декабря 2016, 15:01
                                                                  0
                                                                  А если так?
                                                                  [[!+modx.user.id:memberof=`Administrator`:eq=`1`:then=`Пользователь авторизован. Имеет группу Администратор`]]
                                                                    Алексей Смирнов
                                                                    17 декабря 2016, 19:22
                                                                    1
                                                                    0
                                                                    Проверял уже и так (is). Не срабатывает.
                                                                    Таким образом встает вопрос — как проверить пользователя… Пришел на ум пока только такой вариант:
                                                                    [[!*id:input=`[[!+modx.user.id:memberof=`Administrator`]]`:is=`1`:then=`Авторизрован`:else=`НЕ авторизирован`]]
                                                                    Вот как-то так…
                                                                      Владимир
                                                                      17 декабря 2016, 20:24
                                                                      0
                                                                      {if $_modx->user.sudo ==1}
                                                                      admin
                                                                      {/if}
                                                                      с феномом все равно удобнее
                                                                      посмотрите, все что есть в $_modx->user
                                                                      <tbody>
                                                                            {foreach $_modx->user as $key => $value}
                                                                          <tr>
                                                                            <td>{$key}</td>
                                                                            <td>{$value}</td>
                                                                          </tr>
                                                                          {/foreach}
                                                                        </tbody>
                                                                      </table>
                                                                        Владимир
                                                                        17 декабря 2016, 21:50
                                                                        0
                                                                        PS только проверять надо primary_group, т.к. sudo (неограниченные права) можно любому пользователю назначить.
                                                                          Павел Гвоздь
                                                                          17 декабря 2016, 22:35
                                                                          1
                                                                          +1
                                                                          Так есть модификатор memberof (ismember) для проверки принадлежности к группе. Текущий проверяется так:
                                                                          {if (0 | memberof : 'Administrator')}
                                                                              Пользователь является администратором
                                                                          {else}
                                                                              Пользователь не является администратором
                                                                          {/if}
                                                                          Вместо «0» можно указать ID любого пользователя.
                                                                            Владимир
                                                                            17 декабря 2016, 22:46
                                                                            0
                                                                            primary_group по умолчанию равна 1 для админов
                                                                            {if $_modx->user.primary_group ==1}
                                                                            admin
                                                                            {/if}
                                                                            такой вариант мне больше нравится)
                                                                            PS под «больше нравится» я имею ввиду проверку по ID, а не по имени группы.
                                                                              Василий Столейков
                                                                              18 декабря 2016, 15:07
                                                                              1
                                                                              0
                                                                              В последнее время у меня перестал работать этот модификатор фенома (и все его синонимы во всех вариантах), правда только на одном из моих сайтов. Уже хотел поднимать тревогу, но нашел обходной рабочий вариант:
                                                                              {if $_modx->isMember('Users')}
                                                                              	Для юзеров
                                                                              {else}
                                                                              	Для всех остальных
                                                                              {/if}
                                                                              P.S. Понятно что группу можно подставлять любую
                                                                                Павел Гвоздь
                                                                                18 декабря 2016, 15:36
                                                                                0
                                                                                А ведь и правда, не работает… Отправил PR Василию.

                                                                                И не работает он не в последнее время, а вообще, насколько я вижу. Т.к. при проверке анонимов, он будет проверять первого существующего пользователя.
                                                                                  Владимир
                                                                                  18 декабря 2016, 20:38
                                                                                  0
                                                                                  Павел, подскажи, может я что то не понимаю, $_modx->user.primary_group дает нам ID группы юзера, т.е. любое условие и т.п. можно составить, разве этого не достаточно? Модификатор memberof что дает, чем лучше\удобне? Какой с него прок? Или просто что б был?
                                                                                    Павел Гвоздь
                                                                                    18 декабря 2016, 20:44
                                                                                    +2
                                                                                    Primary group — это основная группа пользователя. Это группа, в которую пользователь был добавлен раньше всего (или та, которая расположена выше остальных) в списке групп пользователя. Так вот, если у тебя пользователь в нескольких группах, а тебе надо узнать, состоит ли он в той, которая не записана в свойство primary_group, то твоим способом ты этого не узнаешь. Поэтому правильнее всего проверять именно так:
                                                                                    {if $_modx->isMember('Administrator')}
                                                                                    или так:
                                                                                    {if (0 | memberof : 'Administrator')}
                                                                                      Владимир
                                                                                      18 декабря 2016, 20:45
                                                                                      +1
                                                                                      Во, спасибо, все понятно.
                                                                                    Василий Столейков
                                                                                    18 декабря 2016, 22:02
                                                                                    1
                                                                                    0
                                                                                    Просто гость (или подставляемый 0) видел защищённый контент любой группы (Manager, Administrator). До каких-то пор работало исправно, потом перестало.
                                                                                    Я заметил за всё время пользования феномом уже у нескольких модификаторов такие глюки — не работают как должны, зато их более длинный вариант через $_modx работает как надо…
                                                                                      Droug
                                                                                      20 декабря 2016, 11:12
                                                                                      0
                                                                                      Я уже писал об этом. Это, видимо, теперь нормальное поведение для modx, после обновления до 2.5.2
                                                                        Михаил
                                                                        17 декабря 2016, 12:15
                                                                        -1
                                                                        Не знаю, совпадение это или нет. Но через какое-то время после появления этой новости modx.pro/security/10266-critical-vulnerability-in-modx-revolution/ у меня взломали два сайта. Оба на модхосте. Последствия этого взлома описаны тут searchengines.guru/showthread.php?t=951958
                                                                          Павел Гвоздь
                                                                          17 декабря 2016, 14:08
                                                                          +1
                                                                          А вы обновились на версию 2.5.2 перед взломом?
                                                                            Михаил
                                                                            17 декабря 2016, 15:44
                                                                            0
                                                                            Нет. Влезли до обновления до версии 2.5.2.
                                                                          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                                                                          117