Андрей Степаненко

Андрей Степаненко

С нами с 28 октября 2014; Место в рейтинге пользователей: #7
07 августа 2018, 17:30
+1
Ибо когда входишь в админку то обращаешься к этим директориям!
07 августа 2018, 13:45
0
а nginx include динамически подтягивать не умеет? А то приходится перезапуска для компиляции нового списка.

Покопался в документации, нашел только это:
location ~* ^/(manager|core|connectors)/ {
                include /home/user/www/core/admin-ips;
                deny            all;
                location ~* \.php$ {
                    include             fastcgi_params;
                    fastcgi_param       SCRIPT_FILENAME $document_root$fastcgi_script_name;
                    fastcgi_pass        user.sock;
                }
        }
Чтобы в конфиг ngixn постоянно не лазить для добавления разрешенных IP:
Можно было бы хранить список с IP там откуда есть доступ к примеру какого то php скрипта в котором прописываешь список разрешенных IP.

По идее тогда вся защита ложится на nginx.

Или для modhost:
Можно сделать чтобы к примеру в папке /core/admin-ips лежал список ip
Администратор добавляет туда разрешенный IP
На modhost запускается скрпит каждую минуту и проверят не было ли изменений в файле. Если были то делает
nginx -s reload


Так уже можно что то придумать в плане управления MODX с этим списком IP. А то ну не прикольно добавлять новые IP для открытия доступа через панель управления хостинга или вообще через ssh.
07 августа 2018, 10:09
0
Прошу прощение за банальность!
А если сделать вот так:
$ip = $_SERVER['REMOTE_ADDR'];
$PHP_SELF = $_SERVER['PHP_SELF'];
$protected = array(
    '/connectors/',
    '/manager/',
    '/core/',
);
$access_ips = array(
    127.0.0.1'
);
foreach ($protected as $path) {
    $len = strlen($path);
    $self = substr($PHP_SELF, 0, $len);
    if ($self == $path) {
        if (!in_array($ip, $access_ips)) {
            die('Access denied');
        }
    }
}
В место защиты через nginx.

Это же обеспечит защиту директорий, хотя бы на уровне php (как раз этого и будет достаточно чтобы сайт не заразили через эту уязвимость.
06 августа 2018, 12:51
1
+2
3 дня назад доработал приложение msOneClick для исправления этого недуга.

Не обязательное поле email

Если сделать поле email не обязательным и при отправке поле оказывается пустым, то minishop не даст создать заказа.
Для этого была добавлена дополнительная возможность для автоматической генерации нового email адреса. Либо можно указать свой email адрес на который будут создаваться все заказа.
03 августа 2018, 05:52
0
Внес корректировку по этой проблеме.
Теперь если email адрес не обязателен и при отправке поле оказывается пустым то автоматически генерируется свой email либо можно указать на какой конкретно емаил создавать все заказы.

Проблемам вот в чем:

Minishop ввел в последних версиях чтобы способ доставки был включен обязательно, без этого заказ не отправляется.
Пришлось допилить чтобы при отправке заказа способ доставки включался и у него проверялись обязательные поля назначенные в minishop. Это решила проблему если есть email адрес.

Но в minishop еще добавлена проверка email адреса принудительно.
То есть если в способах доставки убрать email из обязательных полей, он все ровно будет проверятся в обработчике msorderhandler.class.php
public function getDeliveryRequiresFields($id = 0)
    {
        if (empty($id)) {
            $id = $this->order['delivery'];
        }
        /** @var msDelivery $delivery */
        if (!$delivery = $this->modx->getObject('msDelivery', array('id' => $id, 'active' => 1))) {
            return $this->error('ms2_order_err_delivery', array('delivery'));
        }
        $requires = $delivery->get('requires');
        $requires = empty($requires)
            ? array()
            : array_map('trim', explode(',', $requires));
        if (!in_array('email', $requires)) {
            $requires[] = 'email';
        }

        return $this->success('', array('requires' => $requires));
    }
Так что только такое решение. Убрать email адрес совсем, нету возможности.
23 июля 2018, 08:08
0
Не понял, это как к manage и connectors

К core закрывается
http://s14863.h10.modhost.pro/core/components/ace/model/ace/ace.class.php

Но connectors
http://s14863.h10.modhost.pro/connectors/system/phpthumb.php

доступен ведь?
23 июля 2018, 06:52
0
Тоже клиентские сайты поломали:
2 — сайта: стоял Gallery
1 — сайт: версия modx 2.5.1-pl (Gallery никогда не ставил)
Причем характер взлома одинаковый как для Gallery так и для modx 2.5.1-pl

Везде nginx с закрытым доступом к core и отдельным пользователем на сайт(чтобы вирус не мог ниже своей папки спуститься).

Все остальные сайты где было обновление хотя бы 2.6.0 затронуты небыли
Основная часть сайтов была обновлена до версии 2.6.4
После проверки что вирусов нету обновился до обновился до версии 2.6.5-pl-advanced

Дак какие версии все таки ломают?

Ах да если у вас под одним пользователем все ваши сайты. И какой то один сайт был обновлен до последней версии и его взломали. То можно не считать эту версию критичной в вашем случае, так как скорей всего сайты с версией ниже были заражены и вирус спустился и прошелся по всем ваши папкам.
20 июля 2018, 15:34
0
Возможно у вас в minishop проверяет обязательные поля а не msoneclick. Посмотрите Настройки минишопа
17 июля 2018, 16:21
+1
Не стал выносить весь функционал в одну кучу.
Сделал отдельно возможность редактирования меток типа личного кабинета
http://usermarker.bustep.ru/управление-метками.html
А так можно в ручную настроить чтобы крестик выводился и кнопка изменить была
17 июля 2018, 15:51
+2
Думал что не получится быстро реализовать.
Теперь у компонента есть множественное добавление меток к ресурсам
17 июля 2018, 10:01
+1
Небольшое тз.
1. Пользователь добавляет список меток (fenom-красный, minishop-синий, modUser-зеленый, modResource-фиолетовый)
2. Находит ресурс «Первая стать».
3. Добавляет метки: fenom,minishop,modResource
4. При выборе метки «fenom» ему отображается ресурс «Первая статья»

Так получается надо чтобы работало?
17 июля 2018, 09:20
0
Есть демонстрация возможностей (там двух меток нету).

На счет универсальность, уточните пожалуйста для какой цели вам нужно 2-ве и более меток.
Я просто к чем спрашиваю, если вы администратор сайта, вы можете в админке настроить тв параметр где будут эти теги перечислить? Но если вы пользователь вряд ли вы будете заниматься проставлением тегов для чужого сайта. Ну то есть в таком случае компонент покупать не надо.

На счет названий тегов и меток не согласен. Тогда интернет-магазин можно назвать блогом. Но мы же так не делаем.
17 июля 2018, 08:44
0
Сделать как теги идея хороша. Но только точно не в этом компоненте.
В отдельный компонент вынести чтобы именно как добавления тегов шел со своими возможностями.
17 июля 2018, 08:33
0
Это все таки метки а не теги!
Как то теги все же подразумевают присутствия какого либо текста по этим тегам.
Метка она нужна для выставления какого либо статуса. По этому и компонент задуман так.
Если компонент как теги использовать это совсем другая система будет.
17 июля 2018, 07:50
0
Каждый пользователь которому назначены права доступа


Но чтобы показывать метки все можно отключить проверку id пользователя.

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