Форумы / National / Russian / Тех. поддержка / Экстраполе file - потенциальная уязвимость?

Вопрос к разработчикам о целесообразности использования экстраполя file

Macik
#41059 03.10.2015 22:41

Повторять дисскуссию не буду.
Ты пытаешься использовать отдельные механизмы движка немного не по назначению (допуская несколько ошибок подряд).

Попробую объяснить.
1. Механизм Экстраполей — это возможность создать дополнительное поле данных для какой либо сущности, используемой системой (ядром или расширением). Дополнительное поле будет присутствовать у всех элементов данной сущности. Т.е. если мы создаем дополнительное поле данных для страницы, то у всех страниц будет присутствовать это дополнительное поле. В твоем случае, использовать доп.поля для хранения доп.данных у единичного элемента — логически (и идеологически) не верно. Это, во-первых, избыточно — поля данных создаются у всех пользователей, хотя реально используются только у одного (у админа). Во-вторых, мы дополнительно получаем необходимость разруливать кто из пользователей может этим пользоваться, а кто нет (то с чем ты столкнулся), хотя экстраполя изначально предназначались для равнозначного использования со всеми элементами.

2. Использование условий в шаблонах, это, в принципе, своего рода костыль (точнее не правильное испольование ).  При разработке правильных приложений алгоритмическая логика должна быть максимально отделена от (логики) отображения. Т.е. в идеале все должно стремится к варианту проектирования по типу MVC (или аналогичному). Единственно правильная логика (условия) в шаблонах, которые там «правильно» использовать, это логика отображения конечных данных. Т.е., если простыми словами, варианты оформления данных (например каким цветом вывести счетчик взависимости от чисел на нем, или какую иконку пользователя вывести в зависимости от того залогинен ли он). У тебя, в данном случае, в шаблоне логика уровня приложения (которая влияет на его функционал).

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

Отвечая на поставленные вопросы:

  • нужна ли проверка? Да нужна, если ты хочешь решить поставленную задачу, т.к. используемые тобой механизмы (экстраполя и шаблоны) эту задачу не решают.
  • на сколько безопасно… очень условная шкала. Есть ряд методов, которые позволяют угрозу снизить, но нет «серебрянной пули». Дело тут не в Cotonti или его механизмах, а дело в принципе. Как только ты позволяешь грузить что-то кому-то кроме себя (админа) это уже потенциальная уязвимось.

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

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F