DedMorozzz
9.06.2014 - 16:33
Цитата (chee @ 9.06.2014 - 15:17) |
DedMorozzz открытый доступ к файловый системе, можно же шел залить |
я ж не те вопрос задавал
Цитата (twin @ 9.06.2014 - 15:21) |
Как будто с фреймворкам этого нельзя сделать... Как раз там то можно такого понавоять, не зная элементарных основ, доверившись всемогущему дяде. Я встречал типов, которые с легкостью оперируют фразами "паттерн MVC", "ORM" и прочая, но пишут в акшенах такое...
|
Ошибки везде можно сделать, проблема в том, что используя фреймворк, ты так или иначе хоть какую-то структуру да будешь использовать.
И когда пишешь всё в 1м файле и не пашет, начнёшь гуглить, а чего так и уже хоть что-то да осознаешь
Более того, бывают ещё более худшие проблемы с фреймворками, когда не знающие их пишут свои проекты. В итоге и у самих ничего не получается и другие вообще не могут понять что там реализовано. Ибо ожидаемо одно, а на практике другое.
Но это в ту же степь, что и "Буду ходить пешком, на авто можно разбиться"
Пример из практики - тип на форуме долго искал кого-нить, кто на CakePhp сделает пару моментов. Доработать сайт надо было. Я взялся. Просмотрел, что там и как и отказался
К прмиеру админка была перетянута из какой-то ЦМСки с кое-как переделаным кодом.
В итоге всё работало паршиво, точнее работало там не всё, а новый функционал, который надо было добавить - я вообще не знаю как это бы тот "разработчик" делал бы.
В таких случаях да - лучше ему ходить пешком. Может даже до цели добрался бы
_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
killer8080
9.06.2014 - 16:35
Цитата (МайНеймИзДолли @ 9.06.2014 - 16:02) |
если у человека будут проблемы - он будет искать ошибку и научиться на ней. ибо когда сайт ломают первое приходит на ум почитать статьи про безопасность. |
эта дырка может оставаться незамеченной годами, и копипастится из проекта в проект. Конкретно этот пример был из админки. Автор таким образом сохранял конфиг файлы. Конфиги в виде json-а генерились на клиенте, а бэкэнд их тупо сохранял в файл.
В популярном движке исходники анализируют тысячи разных людей, при обнаружении пишут багрепорт, и дырку закроют. В самописе их искать некому, кроме автора, и шансов что она проскочит больше.
Хотя с другой стороны палка о двух концах, если дыру находят кулхацкеры, то могут проводить массовые взломы. Ломать же самописы можно только в слепую, это гораздо менее эффективно, но угроза от этого никуда не девается.
killer8080
9.06.2014 - 16:41
Цитата (Медведь @ 9.06.2014 - 16:23) |
Это как так? Если переменный чётко определены, то можно залить шел? |
там пользовательские переменные, прилететь может что угодно.
Я хозяину сайта в качестве демо залил шелл, парадокс в том что его это даже не смутило
Он по прежнему считает, что нанимал крутого программиста
DedMorozzz
9.06.2014 - 16:46
Цитата (Медведь @ 9.06.2014 - 15:41) |
Подскажите про file_put_contents Есть две переменные - путь файла и его содержимое Эти переменные определенны в скрипте, можно шел залить? Или это про содержимое переданное пользователем? |
Ну смотри, у первые 2 переменые выше указал
В 1ю я условно заливаю файл "/var/www/my_project/text.php"
Во 2й переменной <?php echo 111; ?>
Терь обращаюсь по адрессу www.my_project/text.php. Угадай что произойдёт?
_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
Цитата (Медведь @ 9.06.2014 - 12:53) |
А как пользователь может передать путь, куда заливать файл, если эта переменная заранее определена? |
Нужно попросить хостера включить register_globals
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Цитата (twin @ 9.06.2014 - 16:56) |
Цитата (Медведь @ 9.06.2014 - 12:53) | А как пользователь может передать путь, куда заливать файл, если эта переменная заранее определена? |
Нужно попросить хостера включить register_globals :)
|
И что, тогда энный человек может перебить мою запись при включенном register_globals
$put_zapis = "file.php";
$content = "содержимое";
file_put_contents($put_zapis , $content);
_____________
Принимаю заказы, писать в ЛС
glock18
9.06.2014 - 17:16
Медведь
Вы код-то хоть, о котором говорите, удосужились посмотреть?
Сорри.
_____________
Принимаю заказы, писать в ЛС
Цитата (glock18 @ 9.06.2014 - 13:39) |
"в этой хрени даже запрос средний не напишешь" и блабла. Речь, очевидно, о какой-то конкретной ORM |
glock18, очевидно да. А еще очевидно, что если не пользоваться query builder-ом, а обходить всю эту богодельню и работать с БД классическим способом, то потеряется фишка быстрой миграции на другие СуБД. Чем так гордятся сторонники фреймворков. И утверждают, что из-за одного этого уже можно использовать чужие наработки.
Итак, одно не использую вовсе. Другое не использую вовсе (какие-нибудь безумные форм-билдеры). А что тогда использую и зачем? Где они эти чудесные фишки, где бочка меда? Вот ложка дегтя есть и ее начинаешь ощущать сразу же как только пытаешься изучить фреймворк.
Цитата (twin @ 9.06.2014 - 14:52) |
переходим на Джумлу! Там вообще нифига программировать не надо. |
twin, как раз сейчас занимаюсь изучением разработки компонентов под Joomla!. Ну не знаю, там такая дичайшая абстракция, что любой CodeIgnitor покажется счастьем. Порог вхождения огромный, если осознанно подходить к вопросу. Тем более примеров нет, не представляю как туда могут пробраться профаны. С трудом нашел книгу, причем на английском. И всё, набрал оттуда текст, запустил - не работает. И хоть слезами плачь, но если сам ничего не понимаешь, то найти в чем косяк - НЕРЕАЛЬНО! Потому, что ошибка ссылается не на твой файл, нет... Ругается на джумловские библиотеки. А косяк у тебя... О как...
paul85
Цитата |
как раз сейчас занимаюсь изучением разработки компонентов под Joomla |
Ну не путай божий дар с яичницей))) Разработка компонентов не есть прямое использование. Я же говорю о прогрессе.
Зачем ломать голову, изобретать велосипеды, какие то дурацкие хэлперы, модели, акшены-продакшены... Открываем панель управления и вуаля. Пусть дяди за нас думают, нам это непристало. Мы же ошибок наделать можем.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Michael
9.06.2014 - 19:13
Цитата (paul85 @ 9.06.2014 - 17:04) |
как раз сейчас занимаюсь изучением разработки компонентов под Joomla!. Ну не знаю, там такая дичайшая абстракция, что любой CodeIgnitor покажется счастьем. Порог вхождения огромный, если осознанно подходить к вопросу. Тем более примеров нет, не представляю как туда могут пробраться профаны. С трудом нашел книгу, причем на английском. И всё, набрал оттуда текст, запустил - не работает. И хоть слезами плачь, но если сам ничего не понимаешь, то найти в чем косяк - НЕРЕАЛЬНО! Потому, что ошибка ссылается не на твой файл, нет... Ругается на джумловские библиотеки. А косяк у тебя... О как... |
c Drupal все то же самое.
Повсюду трехразмерные массивы угадай какого формата и т.д.
_____________
There never was a struggle in the soul of a good man that was not hard
glock18
9.06.2014 - 19:40
Цитата (paul85 @ 9.06.2014 - 15:04) |
glock18, очевидно да. А еще очевидно, что если не пользоваться query builder-ом, а обходить всю эту богодельню и работать с БД классическим способом, то потеряется фишка быстрой миграции на другие СуБД. Чем так гордятся сторонники фреймворков. И утверждают, что из-за одного этого уже можно использовать чужие наработки. |
Понятия не имею, кто такое утверждает. Фишка быстрой миграции дак и вообще... Едва ли прям основным аргументом будет. Хороший уровень абстракции - это хорошо, но "главной фишкой" это никак не может быть. Это уже PDO предлагает изначально, и придумывать особо ничего не надо.
Цитата (paul85 @ 9.06.2014 - 15:04) |
Итак, одно не использую вовсе. Другое не использую вовсе (какие-нибудь безумные форм-билдеры). А что тогда использую и зачем? Где они эти чудесные фишки, где бочка меда? Вот ложка дегтя есть и ее начинаешь ощущать сразу же как только пытаешься изучить фреймворк. |
Мне вот непонятно, почему настолько категоричен человек, который с его собственных слов, все еще сомневается, стоит ли вообще разбираться в фреймворках или нет.
Цитата (paul85 @ 9.06.2014 - 15:04) |
Ругается на джумловские библиотеки. А косяк у тебя... О как... |
Джумлу никогда не брал в руки, но косяк часто действительно "у тебя" ))
Банальный пример
API:
function myApiFunction($param)
{
if (!$param instanceof someInterface && !is_array($param))
{
throw Exception('wrong something');
}
}
Ваш код:
myApiFunction('123123');
Ошибка именно у вас.
Ну и к тому же приравнивать даже отдаленно цмс и фреймворки могут только люди, не имеющие представления ни о том, ни о другом.
glock18
9.06.2014 - 19:41
Цитата (paul85 @ 9.06.2014 - 15:04) |
Вот ложка дегтя есть и ее начинаешь ощущать сразу же как только пытаешься изучить фреймворк. |
Вот про это кстати можете поподробнее рассказать.
Цитата (glock18 @ 9.06.2014 - 19:40) |
Ну и к тому же приравнивать даже отдаленно цмс и фреймворки могут только люди, не имеющие представления ни о том, ни о другом. |
По большому счету - это одно и то же. =) CMS (в частности Joomla) в первую очередь фреймворк. На котором написан продукт. Все вместе это и называется CMS Joomla. Да, они много CMS-ного бросили в Core, ну и что? Суть от этого не меняется.
Ну и если на то пошло, я их и не сравниваю вовсе. Смысл поста заключается немного в другом.
Цитата (glock18 @ 9.06.2014 - 19:40) |
Джумлу никогда не брал в руки, но косяк часто действительно "у тебя" )) |
Ну так я об этом и говорю. Как раз в контексте о пороге вхождения и что человеку не разбирающемуся преодолеть такой заскок будет, мягко говоря, сложно.
Цитата (glock18 @ 9.06.2014 - 19:40) |
Это уже PDO предлагает изначально, и придумывать особо ничего не надо. |
Правда? А вот в RoR даже присутствуют скрипты миграции. А про PDO вообще там не слыхали. Чего-то я не видел в Yii скриптов миграции на другие СуБД... Предлагается просто поменять в конфиге тип драйвера и якобы все заработает. Ну не в этом дело - не главная фишка, так не главная. Хочется понять что же тогда главное.
Цитата (glock18 @ 9.06.2014 - 19:41) |
Вот про это кстати можете поподробнее рассказать. |
А чего там рассказывать? Навязывают много различных абстракций, навязывают naming convention. В случае экстренного и значительного вмешательства в проект получаем огромный батхерт если опыта немного. Когда на собственном движке вопросы любой сложности решаются относительно быстро, поскольку мы имеем возможность вмешаться даже в ядро (мы его знаем). Получается скорость разработки и масштабируемость обыкновенный обман для неискушенного пользователя. Ловушка, говоря проще. Это и есть на мой взгляд ложка дегтя. Да, она со временем растворится может быть в бочке с медом и не будет так ужасающе досаждать. Но первое с чем сталкивается новичок при изучении продукта - это как раз она. Смысл моей фразы заключается именно в этом.
И ладно бы еще PHP, он хоть и меняется от версии к версии, но не фатально. А вот фреймворк может измениться настолько сильно, что его надо будет изучать чуть ли не заново.
Цитата (glock18 @ 9.06.2014 - 19:40) |
почему настолько категоричен человек, который с его собственных слов, все еще сомневается, стоит ли вообще разбираться |
Да в чем разбираться-то, и ради чего, я вот это хочу понять! ))) В чужих "хотелках" (naming convention тот же)? ЗАЧЕМ!? Нет ответа...
sergeiss
9.06.2014 - 20:50
Цитата (paul85 @ 9.06.2014 - 19:04) |
С трудом нашел книгу, причем на английском. И всё, набрал оттуда текст, запустил - не работает. |
Когда читаю такие слова, то вспоминаю анекдот "...или свистка не хватит, или акула глухая попадется..."
Искал где - среди полной халявы?
Я тут недавно скачал с books.ru кучу книжечек "по 1 рублю". В т.ч. одну по Джумле. Переводная, на русском. 2008 года выпуска; но я думаю, что актуальна все равно. Если надо - сброшу.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.