Всего 125 687 комментариев

Серый
02 ноября 2020, 09:55
0
Добрый день, с радостью!)
Вот конфигурация MIGX (я в JSON её писать еще не научился, поэтому тыкаю вкладочки):
{
  "formtabs":[
    {
      "MIGX_id":1,
      "caption":"Main",
      "print_before_tabs":"0",
      "fields":[
        {
          "MIGX_id":6,
          "field":"price",
          "caption":"\u0426\u0435\u043d\u0430",
          "description":"",
          "description_is_code":"0",
          "inputTV":"",
          "inputTVtype":"",
          "validation":"",
          "configs":"",
          "restrictive_condition":"",
          "display":"",
          "sourceFrom":"config",
          "sources":"",
          "inputOptionValues":"",
          "default":"",
          "useDefaultIfEmpty":"0",
          "pos":1
        },
        {
          "MIGX_id":7,
          "field":"description",
          "caption":"\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435",
          "description":"",
          "description_is_code":"0",
          "inputTV":"",
          "inputTVtype":"",
          "validation":"",
          "configs":"",
          "restrictive_condition":"",
          "display":"",
          "sourceFrom":"config",
          "sources":"",
          "inputOptionValues":"",
          "default":"",
          "useDefaultIfEmpty":"0",
          "pos":2
        },
        {
          "MIGX_id":8,
          "field":"doctors",
          "caption":"\u0421\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u044b",
          "description":"",
          "description_is_code":"0",
          "inputTV":"doctorsList",
          "inputTVtype":"",
          "validation":"",
          "configs":"",
          "restrictive_condition":"",
          "display":"",
          "sourceFrom":"config",
          "sources":"",
          "inputOptionValues":"",
          "default":"",
          "useDefaultIfEmpty":"0",
          "pos":3
        },
        {
          "MIGX_id":9,
          "field":"type",
          "caption":"\u041d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f",
          "description":"",
          "description_is_code":"0",
          "inputTV":"serviceType",
          "inputTVtype":"",
          "validation":"",
          "configs":"",
          "restrictive_condition":"",
          "display":"",
          "sourceFrom":"config",
          "sources":"",
          "inputOptionValues":"",
          "default":"",
          "useDefaultIfEmpty":"0",
          "pos":4
        }
      ],
      "pos":1
    }
  ],
  "contextmenus":"",
  "actionbuttons":"",
  "columnbuttons":"",
  "filters":"",
  "extended":{
    "migx_add":"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0443\u0441\u043b\u0443\u0433\u0443",
    "disable_add_item":"",
    "add_items_directly":"",
    "formcaption":"",
    "update_win_title":"",
    "win_id":"",
    "maxRecords":"",
    "addNewItemAt":"bottom",
    "media_source_id":"",
    "multiple_formtabs":"",
    "multiple_formtabs_label":"",
    "multiple_formtabs_field":"",
    "multiple_formtabs_optionstext":"",
    "multiple_formtabs_optionsvalue":"",
    "actionbuttonsperrow":4,
    "winbuttonslist":"",
    "extrahandlers":"",
    "filtersperrow":4,
    "packageName":"",
    "classname":"",
    "task":"",
    "getlistsort":"",
    "getlistsortdir":"",
    "sortconfig":"",
    "gridpagesize":"",
    "use_custom_prefix":"0",
    "prefix":"",
    "grid":"",
    "gridload_mode":1,
    "check_resid":1,
    "check_resid_TV":"",
    "join_alias":"",
    "has_jointable":"yes",
    "getlistwhere":"",
    "joins":"",
    "hooksnippets":"",
    "cmpmaincaption":"",
    "cmptabcaption":"",
    "cmptabdescription":"",
    "cmptabcontroller":"",
    "winbuttons":"",
    "onsubmitsuccess":"",
    "submitparams":""
  },
  "columns":[
    {
      "MIGX_id":1,
      "header":"\u0426\u0435\u043d\u0430",
      "dataIndex":"price",
      "width":10,
      "sortable":"false",
      "show_in_grid":1,
      "customrenderer":"",
      "renderer":"",
      "clickaction":"",
      "selectorconfig":"",
      "renderchunktpl":"",
      "renderoptions":"",
      "editor":"this.textEditor"
    },
    {
      "MIGX_id":2,
      "header":"\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435",
      "dataIndex":"description",
      "width":50,
      "sortable":"false",
      "show_in_grid":1,
      "customrenderer":"",
      "renderer":"",
      "clickaction":"",
      "selectorconfig":"",
      "renderchunktpl":"",
      "renderoptions":"",
      "editor":""
    },
    {
      "MIGX_id":3,
      "header":"Doctors ",
      "dataIndex":"doctorsList",
      "width":20,
      "sortable":"false",
      "show_in_grid":1,
      "customrenderer":"",
      "renderer":"this.renderChunk",
      "clickaction":"",
      "selectorconfig":"",
      "renderchunktpl":"",
      "renderoptions":[
        {
          "MIGX_id":1,
          "name":"doctorsListTpl",
          "use_as_fallback":"",
          "value":"",
          "clickaction":"",
          "handler":"",
          "image":""
        }
      ],
      "editor":"this.textEditor"
    },
    {
      "MIGX_id":4,
      "header":"\u041d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f",
      "dataIndex":"type_list",
      "width":30,
      "sortable":"false",
      "show_in_grid":1,
      "customrenderer":"",
      "renderer":"this.renderChunk",
      "clickaction":"",
      "selectorconfig":"",
      "renderchunktpl":"[[migxLoopCollection? \n&classname=`modResource`\n&where=`{\"id:IN\":[ [[+type]] ]}`\n&tpl=`@CODE:[[+pagetitle]]<br \/>`\n]]",
      "renderoptions":"",
      "editor":"this.textEditor"
    },
    {
      "MIGX_id":5,
      "header":"Doctors IDs",
      "dataIndex":"doctors",
      "width":"",
      "sortable":"false",
      "show_in_grid":1,
      "customrenderer":"",
      "renderer":"",
      "clickaction":"",
      "selectorconfig":"",
      "renderchunktpl":"",
      "renderoptions":"",
      "editor":""
    }
  ],
  "category":""
}
doctorsListTpl:
[[!pdoResources?
&parents=`2`
&resources=`[[+doctors]]`
&tpl=`@INLINE [[+doctors]]`
]]
Алексей Соин
02 ноября 2020, 09:40
+3
как минимум если разработчик разрешит использование сниппета в который можно передать tpl, то можно вывести любую системную настройку, вызвать любой другой сниппет, поменять что угодно на сайте, добавить админа и тд. Придумать можно очень много всего.
L I T O S H
L I T O S H
02 ноября 2020, 01:31
0
Эй. Я тебя че заставляю? Сорян, если обидел братика, я даже грублю через Вы оказывается. Но ты здесь просто походу небо покоптить пришел, да? Потому что явно без весомых аргументов.
И да, не обижайся, я тоже могу ответить, если че так. И как следует. Особенно таким как вы, которые пишут ахинею по поводу и без.
Артем
02 ноября 2020, 01:27
-1
И значит если какой-то прогер не знает о баге с pdoResources,
Земля пухом коннектором, что еще тут скажешь.
Артем
02 ноября 2020, 01:26
+1
Вы плохо читаете или понимаете?
Ты решил поиграть в самого дерзкого или к чему ты мне это написал?

Если вы так уверены в этом, просто не ставьте pdoResources в разрешенные.
Я не собираюсь использовать твой компонент, который состоит из 30 так-себе-написанных строк, да и другим не советую этого делать.

Вообще кек, мои слова о поддержке на modx.pro забираю обратно.
Какие мы тут плохие, обидели бедняжку:(
Ну ты извини нас, мы дружно скачаем твой компонент и будем использовать на всех своих сайтах. Ведь это самый удобный и самый практичный способ работы с ajax.
L I T O S H
L I T O S H
02 ноября 2020, 01:22
-1
А… стоп, понял. Вы ответили на вопрос в чем отличие, окей. Так значит отличие только в этом? И значит если какой-то прогер не знает о баге с pdoResources, поставит на коннектор этот вызов через ajax, то все — О май гад модыкс дырявый???
L I T O S H
L I T O S H
02 ноября 2020, 01:18
0
Вы плохо читаете или понимаете? Если вы так уверены в этом, просто не ставьте pdoResources в разрешенные. Разрешаете вы, а не я. С какой стати я должен отвечать за то, что вы там понапишите/разрешите? Вообще кек, мои слова о поддержке на modx.pro забираю обратно. Но благодарность тем 6-и человекам все равно остается.
Артем
02 ноября 2020, 01:08
0
в чем принципиальное отличие запроса в коннектор и просто в сниппет
Принципиальное отличие в том, что в коннекторе ты сам вызываешь нужный сниппет и сам передаешь ему параметры, поэтому сюрпризов там не будет, а в твоем случае ты просто запускаешь произвольный сниппет с произвольными параметрами.
Собственно, если в разрешенных сниппетах будет какой-нибудь pdoResources, то это будет аналогично этому коду:

$modx->exec($_REQUEST['snippet']);
Баха Волков
01 ноября 2020, 20:42
0
Делать AJAX запрос в сниппет, имхо, это прямой билет в дурку
Не совсем понятно, как ты представляешь AJAX запрос в сниппет, я вот не представляю. У сниппетов в MODX появился постоянный url?)

Я код компонента не видел, но ясно что или коннектор, или какой-то плагин отлавливает запрос. Скажи если я не прав
L I T O S H
L I T O S H
01 ноября 2020, 20:08
0
Опять без аргументов? норм
Павел Гвоздь
01 ноября 2020, 20:05
-2
Видимо, как минимум, в голове у тебя. Говорил уже. И не я один.
L I T O S H
L I T O S H
01 ноября 2020, 20:04
-1
Говори, в чем «дыра»?
Павел Гвоздь
01 ноября 2020, 20:03
0
Ты в мире с единорогами живёшь, чтоли? Тебе люди знающие говорят, что это дыра. «Теория», блин…
L I T O S H
L I T O S H
01 ноября 2020, 20:02
-1
В чем «дыра» ответь, ты так и не ответил. Конкретно, в чем?
L I T O S H
L I T O S H
01 ноября 2020, 20:01
-1
Незачем это делать. Я так и не услышал в чем «дыра». Самый жесткий комментайрий — что типа кто-то подключит в сниппете pdoResources (хотя и эту теорию еще нужно проверить). Остальное треп
L I T O S H
L I T O S H
01 ноября 2020, 19:51
-3
Если ты не объяснишь в чем принципиальное отличие запроса в коннектор и просто в сниппет, то билет в дурку достается тебе.
Павел Бигель
01 ноября 2020, 17:20
+1
В MODX парадигме AJAX запросы ведут в коннектор.
Делать AJAX запрос в сниппет, имхо, это прямой билет в дурку
Артур Шевченко
01 ноября 2020, 17:00
0
Я не делал, но в таких случаях я лезу БД и смотрю в какой таблице и в каком поле хранится нужная инфа, а потом через pdoResources вывожу используя where.
Артур Шевченко
01 ноября 2020, 16:53
0
Я придумал простое решение проблемы. В магазине есть плашки предупреждающие о системных требованиях, пусть добавят плашку типа «Вызов некоторых снипеттов через этот компонент может быть использован злоумышленниками для взлома сайта».
Александр Мельник
01 ноября 2020, 16:01
+2
не пойму я. Ладно человек написал код, который потенциально может быть небезопасным (хотя раз запуск того или иного сниппета необходимо подтвердить в системной настройке, то это уже говорит о том что человек думал о безопасности.)
А вот почему это приложение тогда появилось в официальном магазине? А то все накинулись на разрабочика, а мне кажется большая часть вины лежит на том, кто добавил это в магазин если код такой опасный.