Утилита "Генератор модуля"

#1 25 мая 2013 в 14:33
Желающие могут забрать у меня из профиля простую утилитку для автоматического создания нового модуля для InstantCMS v.1.10.1.

Все подробные инструкции внутри архива. Для запуска утилиты поместите файл generator_mod.php в корень сайта. Наберите в браузере адрес_вашего_сайта/generator_mod.php. Заполните поля формы и нажмите на кнопку "Создать модуль". Пока вы не нажали этой кнопки, никаких изменеиний в БД и файлах Вашего сайта не произойдет.

Поскольку InstantCMS v.1.10 поддерживает два вида админок модулей ( с расширениями *.xml и *.php), Вы можете выбрать любое из расширений — с этим расширением и будет создана админка. Выбирайте то, которое кажется Вам удобнее. Если Вы не выберете ни одно из расширений, админка создана не будет.

Наполнение модуля действиями зависит от Вашего мастерства программирования. Утилита создает лишь заготовку модуля, правда, уже работоспособную.

Если Вы хотите создать два модуля подряд, просто закройте закладку браузера с запущеной утилитой (прекратится выполнение сценария) и снова наберите адрес_вашего_сайта/generator_mod.php. Вы можете создавать следующий модуль.

После создания модуля удалите утилиту из корня сайта. Удачи в программировании.
#2 25 мая 2013 в 16:06
Годно! В мэмориз!
#3 25 мая 2013 в 16:22
Молодца! Автоматизация мелких дел )
Уже для блога накопили вроде? Ждем интересностей joke
По скрипту, я бы не стал каждый раз удалять после использования. Ввел бы проверку на админа и пусть лежит себе.
#4 25 мая 2013 в 17:54

Ждем интересностей

Марат
Будут. Пишу интересный компонент.

Ввел бы проверку на админа

Марат
Я ведь написал, что утилита простая. Больше проверок — больше кода.

Уже для блога накопили

Марат
Еще нет. Чучуть осталось.

В мэмориз!

Amurland
Еще шестого мая отправил аналогичную утилиту, "Генератор компонента" в "Дополнения". Пока никаких движений. А всего-то нужно создать рубрику "Утилиты".
#5 25 мая 2013 в 18:47
А теперь немного критики joke

Я ведь написал, что утилита простая. Больше проверок — больше кода.

Странник
Больше кода, не страшно. Главное, чтобы проверок было достаточно )
Не поленился, скачал, посмотрел.
Нехорошо, очень нехорошо вот так делать:
  1.  
  2. $folder = $_POST['folder'];
  3. $name = $_POST['name'];
  4. $title = $_POST['title'];
  5.  
и потом прямиком, без проверки загонять вот это в БД. Понимаю, что вы предупреждаете и предполагаете, что файл будет удален после использования. Но, поверьте, найдутся люди, которые не удалят файл. Инструкции у нас читают или сквозь пальцы или вообще не читают. Обработка входных данных должна быть всегда.
Также не вижу mysql_escape_string(). С забытым на хостинге файлом угнать сайт без проблем. Почитайте про sql-инъекции.
Если бы подключили систему, кода прибавилось бы ненамного. Поверьте. И если бы ввели проверку на админа, намного обезопасили бы ваш скрипт.
Без обид. Просто посмотрел и выкладываю то, что вижу. Для вашей же пользы. Как приучитесь, так и будет smile
#6 25 мая 2013 в 19:25
Генератор модуля, как впрочем и генератор компонента с точки зрения безопасности катастрофически плохо. И самое плохое не в отсутствии проверок в самом теле генератора, а в том, что пользователи, по незнанию, для его работы включат доступ на запись к системным папкам, в которые запись должна быть априори ЗАПРЕЩЕНА. И как заметил Марат, не все потом удалят файлы генератора и уж тем более не вернут обратно права. А те, кто задумается над этим, не будут использовать подобные генераторы.

p.s. это я в преддверии постов: меня поломали… аааа… виноват инстант....
p.p.s. про качество кода я вообще молчу.
#7 25 мая 2013 в 19:25
МАРАТ 100% прав, все пост запросы только через вызов метода cmsCore::request где и обеспечены все варианты фильтрации входящих данных.Это надо принять к сведению всех разработчиков сторонних компонентов и модулей.
Надо категорически понять что все методы POST запросов внутри системы исключены в целях безопастности, и должны проходить внутреннюю (СИСТЕМНУЮ)фильтрацию c использованием метода request.
  1.  
  2. $folder = cmsCore::request('folder', 'str', 0);
  3. $name = cmsCore::request('name', 'str', 0);
  4. $title = cmsCore::request('title', 'str', 0);
PS//+ однозначно.
#8 25 мая 2013 в 19:27
Никаких обид, критика конструктивная. Наоборот, я даже испытываю благодарность, что люди заинтересовались. Проверки в ближайшее время введу, но предупреждение о немедленном удалении утилиты после использования остается в силе. На всякий случай.
#9 25 мая 2013 в 19:34

предупреждение о немедленном удалении утилиты после использования остается в силе

Странник
Ох, я посмеялся сейчас)) Дело в том, что недавно я выпустил обновление того, что в подписи. Так вот в комплекте была подробная инструкция. Мой самый ходовой вопрос был по саппорту "инструкцию читали?", самый ходовой ответ был какой? естественно "нет".
Минимум 50% просто забудут удалить, еще 30% забьют на предупреждение. имхо.

Да, и ничего не имею против подобной идеи, но подумайте о безопасности плотно.

Как вариант:
создавать записи в таблицах, а все файлы, которые должен формировать генератор, создавать в какой-нибудь временной папке, например в /upload (она доступна для записи). После генерации упаковывать в zip при помощи php и отдавать архив клиенту на скачку, а на экран выводить инструкцию по установке.
Ну и чтобы совсем идеально было — выполнить в качестве компонента к InstantCMS без фронтэнда с одной админкой.
#10 25 мая 2013 в 19:48
О безопасности думать всегда надо, спасибо за подсказку. Ну, а если человек по личному пофигизму оставляет утилиту на сайте, хотя его предупреждают, чтобы он этого не делал, и что случиться, если он утилиту оставит… виноват не кодер, а пофигист.
#11 25 мая 2013 в 19:52

.виноват не кодер, а пофигист.

Странник
поверьте, виноват всегда будет кодер. попробуйте вариант, который я вам описал.
#12 25 мая 2013 в 19:56

выполнить в качестве компонента к InstantCMS без фронтэнда с одной админкой

Fuze
Кста, так и задумывалось изначально — эта утилита ведь инструмент админа и больше никого))))). Я просто хотел показать( и застолбить) идею и послушать мнение коллег. Поэтому и оформил в виде утилиты.

Уговорили. Я допишу компонент (с другой идеей), которым сейчас занимаюсь и переделаю оба генератора… но уже чуть попозже. Ждите.
#13 25 мая 2013 в 21:10
Марат, Странник, Теперь накопили! =)
#14 26 мая 2013 в 08:24
Aloha, мне сейчас не до блогов по причине нехватки времени. Пишу новый, очень интересный инструмент админа, как напишу и отлажу, вот тогда заведу бложик. Там и обсудим мою писанину.

Спасибо всем заинтересованным людям за понимание!
#15 26 мая 2013 в 08:30
Всем скачавшим у меня Генератор модуля. Вчерашнее обсуждение показало, что хранить у себя утилиту в корне сайта "на всякий случай, вдруг соберусь написать модуль" по меньшей мере небезопасно. Пользоваться утилитой можно только в режиме "распаковал-> сгенерил модуль-> удалил утилиту".

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

В скором будущем, как немного выкрою время, перепишу Генератор модуля в качестве компонента Инстанта, со всеми встроенными мерами защиты. Спасибо за понимание.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.