По просьбе заказчика стал наводить аудит на их сайт с целью украшения и улучшения. И, оба-на, сюрприз! Вижу в неприметном cfg.php конструкцию вида
<? eval(gzinflate(base64_decode('7X1rcxs5kuBnd0T/B7ia3STH...
Небольшое исследование показало, что это популярный бэкдор -- "c99madshell".
Так это я вот к чему, сайт у заказчика самописный, из разряда "...зачем вам тяжелый CMS, вам много функционала не надо, я быстро напишу всё что вам нужно дешевле и лучше!" Ну и лоханулся писатель с санацией при загрузке картинок или чем-то аналогичным.
Вот он довод против сочинения своих "CMS'ок"! Убеждайте заказчиков, что лучше взять Drupal, проверенный на много рядов, чем рисковать с заведомо небезопасными "поделками".
Комментарии
Друпал при не правильной настройке тоже уязвим.
В данном случае, очень вероятно, что взлом был осуществлен не через CMS, а через дырявый сервер, либо через ftp клиент администратора.
v1adimir@drupal.org, так а ведь без изобретений своих велосипедов(даже чисто для интереса) они же полные буратины
Одно дело для интереса, другое дело для клиента.
Пустой холивар.
Включи в Друпале php-фильтр для всех и будет то же решето.
Виноваты не CMS, а руки и мозги.
И в друпал тоже можно юэкдор вписать.
да, да, верно. еще админу сделать пароль "123" или "qwerty"... я о другом.
о том, что в 99,9% случаев друпал более устойчав к прямому взлому, чем самописное решение.
ну конечно. Наверное тем, что в друпале взломщик точно будет знать куда ткнуть в случае чего. И на чем лохаются люди. А самописка - черный ящик изначально.
Ch совершенно прав.
На самом деле подобная уязвимость скорее будет использована на типовом, мейнстримовском проекте (Drupal), количество инсталляций которого сотни тысяч, чем на самописной CMS, которая стоит на 1 сайте. Экономически невыгодно писать эксплойт или взламывать такой сайт.
Если, конечно, это не сайт какого-нить банка, пентагона или цру.
Тут ИМХО украли пароли FTP, дибо дырка в стороннем скрипте, а лоадер шелла для удобства залили в сайтовый скрипт.
А если это сайт конкурента?
Сравнение некорректно. Если над самописным решением работает школяр, то да, если группа спецов за приличные деньги, то нет.
Windows 2000 был написан школярами? ))
А никто и не пишет "под сайт", тупо идут по index.php и еще десятку стандартных имен и хренечат в конец код.
В Drupal, кстати, есть степень защиты: там если вирус, стыривший пароль, нагадит в модули своим JavaScript или даже кривым PHP, то Drupal начнет показывать белый экран, какбэ намекая, что надо бы разобраться.
Это из-за того что в друпале закрывающего тега нет, а всякая хрень его туда вписывает
+1. Убеждая заказчика использовать Друпал, признайтесь, что вам самому легче сделать на Друпале
И...?
Совок, чо
меняйте заказчика, если он хочет сэкономить на хосте да еще врятли оплатит хорошо нормальную разработку самописного проекта
хотя у меня тож раз увели ftp пароли и если б не отсутствие закрывающего тэга то и долго бы не узнал(((
Ну да. НЕо он какбэ и не обязателен, а в итоге такая-вот ловушка выходит.
Не понял, к чему тут виндуз.
К тому, что в нем уязвимости? Во всех программах они есть. Почему мне предлагают скачать Drupal 6.19, а не 6.0?
Сама тема несколько туповата.
CMS как система управления сайтом нужна далеко не для каждого сайта. Это во первых.
Тем более не нужна для каждого сайта такая тормозная система как друпал. Для генерации страницы(пустая сборка) - около 200 запросов. Это зашкаливание по всем параметрам. Это во вторых.
Ну а в третьих, вы все бочку катите на плохих программистов php которые ошибаются и пишут незащищенный и т.д. код. Может потому что вы сами такие - слабачки php программирования. Поэтому мышкой и стали программировать?
И даже не знаете что есть же профессионалы. С ними косяков не случается.
p.s. зайдите на любой форум php. Там CMS-ников даже меньше чем учеников Попова уважают. Говнодеятелями считают. Это к тому что нет однозначной истины CMS VS свой код. И те и те просто отстаивают свои штаны.
ну да мне недавно предложили пообновлять сайт на котором инфа представлялась в виде страничек с одним кодом - include menu.php, от мне весело было.....
Лично я начинал с html, потом подучивал css, php, javascript, drupal, jquery - именно в такой последовательности, поэтому без проблем могу и сам писать нужные модули с необходимым функционалом. поначалу, когда начал изучать drupal думал - че за бред?, уж легче самому написать, но приловчившись понял, что так быстро и качественно развернуть сайт без друпала невозможно. по крайней мере простые проекты. А порталы - это явно не друпал.
А "тормознутость" друпала - это миф, многие тесты показывают, что ни joomla ни wp не быстрее, а изменять те cms-ки под себя сложнее...
Нужна. Для каждого. Иначе не нужен этот сайт. Это, во-первых. )
Если страница друпального сайта генерит 200 запросов, значит там присутствует достаточно много функционала. Если этот функционал станут создавать с нуля "профессионалы" с любого форума php, то, почти наверняка, тебя будет ждать АЦЦКИЙ АД при поддержки этого кода, не говоря уже, про расширение дизайна и функционала...
Если "профессионалы" на самом деле окажутся профессионалами, то они напишут "Drupal-II" за серьезные деньги и немалое время. )
+1.
Могу показать сайты и с 10мс на страницу и не пустые
я не сравниваю с другими движками. Они могут быть также тормозами. Хотя по моим данным например MaxSite CMS на главную генерирует всего один запрос. Речь идет о самописе.
Вот например пустой друпал, зареганый пользователь. Материалы на главной - 10 анонсов, меню слева, чистые ссылки - основное в общем.
Drupal запросов 200 выполнит, чтобы построить такой мизер данных. И большая часть - внутренние служебные запросы(в девеле смотрю).
Для самописа - тут 10 запросов - это уже крыша будет. И это факт. Очень много "лишних" телодвижений.
это не аргумент, т.к. достигается в основном физическими показателями хостинга, тарифами, деньгами в общем.
http://www.fortress-design.com/other/rating-cms-from-itrack/
хотя я бы по своим ощущениям поставил бы 1с за wp
после этой инфы решил скачать чудо даннео, о боже там админка - черте что, не говоря о поддержке модулей и тд
вы не внимательно читаете, можно и вообще сделать сайт без админки и без запросов бд, сорость буде ок - гдето в 3 раза быстрей друпала (сам тестил), но Вам обновлять такой сайт буде не легче.
ЗЫ друпал - 3 хака ядра и число запросов снижается до 100 при той же функциональности.
а вашей цмс где один запрос - насколько она гибкая и изменяемая без лазанья в код???
вы про кеширование? Или модуль boost? Это уже хаки. Не хотелось бы к ним прибегать на простом сайте, который надо сделать и отдать.
я имел ввиду не на друпале. а голый HTML. теперь понятней?
в студию. И почему друпал так часто обновляется и они не в ядре?
http://xandeadx.ru/blog/drupal/20
- блоги тоже полезны, не обязательно сидеть на д.ру и кричать хелп
т.е. 100р деньги для вас?
Дык на самописах это стоит копейки, ибо дыр полно.
Задрали вы уже с запросами, если честно. Не нужны запросы? Избавься от них. Сведи к нулю. Это возможно. Не можешь - иди пиши самопис без запросов.
Это напоминает сравнение asm-кодера и C-кодера. У второго ЯП выше уровнем и в asm он может ничего не понимать. Будем делать вывод, что он слабачок? А человек, использующий для компиляции непосредственный ввод команд в консоли во сто крат круче использующего IDE?
Сколько тебе лет?
Кстати, хотелось бы видеть что этот один запрос включает в себя, сдаётся мне, что там ни авторизации, ни проверки прав доступа, ни статистики, ничего нет, тупое выдёргивание из кеша или ещё что
Ух ты какая крутая и гибкая цмс всего то один запрос на главной, версия 0.40, плагинов - 75 шт, и целая куча шабнонов - аж 3 штуки. ВОТ где БУДУЩЕЕ CMS и на кого нужно равняться друпалу. Ребят айда все на MaxSite CMS
не удивлюсь если плагины подключаются к сайту при помощи указания вручную include()
Один SELECT с парой десятков вложенных запросов + хранимые процедуры + триггеры + еще что-нибудь особенное мегашаманское = принципиально новая CMS.
Вот так надо!!!
Если я не ошибаюсь, то эту систему автор начал писать в 16 лет, название очень похоже
Похоже действительно подавляющее большинство наших веб-разработчиков ничего толком не знает о среде выполнения своих приложений и что сервера тоже поддаются оптимизации.
Друпал-разработчики - это рыбаки, ловящие сельдь, в то время как рядом плавает жирный тунец.
А по поводу топика..
У самописа до 10 бетатестеров
У платного ПО около сотни
У бесплатного не ограничено.
Кому больше доверять?
</HTML>
Для кулхацкера – может быть, для вебразработчика – ни в коей мере.
А от разработки ОС Linux только Linus Torvalds.
У тебя то лично есть с чем сравнивать, профессионал?
PHP нас ограничивает, давайте писать на СИ.
Почему-то друпал мне не мешает потихоньку осваивать что-то кроме MYSQL и PHP с перспективой использования накопленных знаний хоть с друпалом хоть без него.
покажи эти сайты, пожалуйста.
ну да мне недавно предложили пообновлять сайт на котором инфа представлялась в виде страничек с одним кодом - include menu.php, от мне весело было.....
расшифрую - из всего кода на странице было только include menu.php - а остальное - голый html. и этот сайт грузился быстрее drupal.ru в 3 раза, те за 2 сек на сайте http://gtmetrix.com и то за счет более легкого дизайна
Если хочешь посмотреть на сайт - то его уже нет, потому что он теперь Работает на drupal'e
у тебя вообще мысли скачут ... Где ты это имел ввиду?
Это столько стоит хостинг на который друпал ставить что ли? =)
и где это на самописках дыр полно? Картинку загрузить, проверить, что картинка. bb-коды для пользователей. Очищать ввод от sql-иньекций. Вывод - htmlspecialchars. Вот основное. Много тут можно натупить? Хотя конечно кому как, разные в это дело лезут. И пту-шники тоже.
неверное сравнение. То два разных языка программирования. никакой связи.
познакомиться что ли решил?
это пипец ... Я иду на велике за город покататься, а экипируюсь так как будто Россию на велике объехать решил. Уровень свой не показывайте.
Проверил сам. 8 вопросов на самом деле. Самый "жирный":
<?php
SELECT `mso_page`.`page_id`, `page_type_name`, `page_slug`, `page_title`, `page_date_publish`, `page_status`, `users_nik`, `page_content`, `page_view_count`, `page_rating`, `page_rating_count`, `page_password`, `page_comment_allow`, `page_id_parent`, `users_avatar_url`, COUNT(comments_id) AS page_count_comments, `mso_page`.`page_id_autor`, `users_description`, `users_login`
FROM (`mso_page`)
LEFT JOIN `mso_users` ON `mso_users`.`users_id` = `mso_page`.`page_id_autor`
LEFT JOIN `mso_page_type` ON `mso_page_type`.`page_type_id` = `mso_page`.`page_type_id`
LEFT JOIN `mso_comments` ON `mso_comments`.`comments_page_id` = `mso_page`.`page_id` AND comments_approved = 1
WHERE `page_status` = 'publish'
AND `page_type_name` = 'blog'
AND `page_date_publish` < 'DATE_ADD(NOW(), INTERVAL \"00:00\" HOUR_MINUTE)'
GROUP BY `mso_page`.`page_id`, `comments_page_id`
ORDER BY `page_date_publish` desc
LIMIT 7
?>
Представьте себе.
ну если поставить та можно поставить. Как в работе - вот в чем вопрос. То нет никого, то резко есть посетители. Или 1000 в день. Ок будет? Или быренько предложат перевестить?
http://doc.drupal.ru/node/48913
Мощностей хватит и на сторублевом тарифе. Апгрейдится надо для большего количества БД, доменов, почтовых ящиков, дискового пространства.
спасибо за инфу, но там же вроде пишут:
где там про 100 рублей?
MaNaX, та то понятно. Статические сайты и прочие динозавры не в той категории. Говорим о сайтах на php с админкой. Т.е. CMS-ого типа. О их скорости.
ЭТО у вас мысли скачут...
Признаю ошибку, там не 100 руб. Другого яркого и более дешевого примера не найду.
Но мы ведь и про нагрузку совсем другую говорили. 1000 чел в день это не критично много и поменьше чем в примере который я указывал.
ну какое отношение джумла и вордпресс имеют к скорости друпал? Стрелки чтобы перевести? Также и сайты на статических страницах - не в форватере темы ....
простите, но мы про тормознутость говорим, и если последовать по ссылке видим, что быстрее работает движок, в котором только создатели и разберутся, которые без вменяемой админки, без модулей и тем, когда ее нужно ставить переименовыванием файлов и вручным внесением данных в блокноте. ХХ1 век, однако! Никто не запрещает тебе ими пользоваться - твое право - но ходить сюда, крутить пальцем у виска и кричать, что мы здесь все ОЧЕНЬ тупые и пользуемся не тем, чем надо, то сравни хотя бы, количество фанатов, той или другой цмски.
а по поводу дыр - давай спор. Ты взламываешь друпал.ру и на главной пишешь, что MAXsite CMS cool, а я на сайте max-3000.com пишу, что друпал кул? ну как?
Да хоть тот же drupaler.ru дёрни через time curl
Куча джойнов это круто, чо.
Копейки считаем?
плохо, да? чем заменишь?
Хуже чем 200 запросов, ОднОзначно.
100р. и 400р. - разница в копейки ???? ...............
10 часов работы программиста на друпале или 100 часов на самопис - разница в копейки????????????17717171717!?!!!! ..... .. . .. . . .
Спасибо, я незнал о таком применении time и curl.
В общем, на одном из наших проектов:
Онлайн анонимусов: 100.
Онлайн юзеров: 3-5.
Всего нод: около 10 000.
Используем boost.
Отдача статики через nginx.
Вот такая малина о time curl.
real 0m0.245s
user 0m0.008s
sys 0m0.000s
YSlow показывает 1.8s.
При этом Google Webmaster говорит, что сайт работает медленнее чем 70% сайтов интернета.
В общем это я к тому, что Drupal — штука прикольная, и с ней и прямыми руками и светлыми головами можно творить чудеса.
А вот мерять сайты по скорости дело неблагодарное, выходит мерило и каждого свое, у кого отдача от сервера, для кого загрузка клиенту, а гигантам — сравненеие с другими.
Главное — чтоб юзер был доволен!
Сегодня один из известных товарищей данного сайта, попросился к нам на хостинг, причина - у нынешнего гудзонхоста до 190мс уходит на отдачу ОБЫЧНОЙ HTML-странички
XSS на каждом шагу.
Много юношеского максимализма и мало опыта. Проверяю догадку.
причем тут работа программиста? Деньги то за хостинг платит владелец сайта. И считает их тоже он. Мне то все равно. Чем дороже, тем лучше. Вот и объясняй почему ему берем тариф в четыре раза дороже зато с друпалом, а у его друга Васи и на первом от мажордомо все работает. Сразу вопрос - а ты там ... это - точно умеешь?...
Ну что я могу сказать - плохой ты наблюдатель, и по первому и по второму пункту.
Вряд ли. Судя по топику, друпал ты знаешь плохо, точнее совсем не знаешь, однако пытаешься его критиковать. "Не зная броду...". Судить о предмете не зная его, это либо глупость, либо самоуверенность. Ну а фраза "И даже не знаете что есть же профессионалы. С ними косяков не случается." даёт понять, что ты сам либо никогда не был профессионалом, который допускал элементарные просчёты, либо никогда с такими людьми не сталкивался. Ну или не замечал. А на самом деле это вполне обыденное дело.
Я сделал самый оптимистичный и лестный для тебя вывод
Dan, как по мне твоя попытка перевести диалог на лично меня - детская. И аргументы в стиле сперва добейся не могут не порадовать. =). Если нет чего сказать по теме топика, то умные люди советуют промолчать. Напомню тему топика: Самописные CMS vs. Drupal
а тестировать скрипты после(и по ходу) чтобы от элементарных просчетов защититься - пробовал? Или этому не учили?
Что в этой теме привело тебя к такой мысли? То, что я сказал, что сайты на друпале перегружены запросами? Да это известный факт. Тут же на форуме это 1000 раз упоминается. Особенно когда кучу модулей подключают.
p.s. Заметьте я ни разу не сказал, что друпал - это плохо. Потому что я так не считаю, наоборот друпал для меня - гениальный. Но уже какие то попытки гона ... Это что - болезненная чувствительность? Неприятие объективной информации? Шоры на глазах?
Ты сам сказал, что "тема несколько туповата", я тут с тобой согласен - обсуждать нечего, всё очевидно, поэтому и троллю. А людей умных я не слушаю - я ж тролль!
Да причём тут тесты? Элементарные просчёты != банальным ошибкам в коде. Ошибиться можно в архитектуре, можно написать кривой и медленный код, который будет выдавать правильный результат.
Да и вообще, причём тут программисты? Среди электриков, например, тоже встречаются профессионалы, однако и они отвёртки в щитки роняют...
Ну обычно хватает двух-трёх комментов, чтобы это понять.
Артистер упоминается не реже...
Какой фразе отдать предпочтение?
Это усталость от кучи "профессионалов", которые ещё не прошли этап написания своей CMS, но уже лезут критиковать Drupal. Причём критика однообразна - запросы к БД, переводы в БД, нет ООП. Ничего нового, ничего существенного.
Длинные названия функций забыл
первой отдай. Хотя вообще то они о разном.
Что "ЭТО". Можно на примере? Что в друпале я не знаю?
Яркий пример самописа, система называется "попробуй вспомни"
include_once ($home_dir.'functions/_menu_check_catalog.php');
include_once ($home_dir.'functions/_menu_print_child.php');
if (isset($index_page_loaded) && $index_page_loaded) {
if (!M_TOPMENU) {
echo '
<td class="menu">';
$position = 1;
foreach ($arr_pages as $k => $item) {
while (isset($arr_pages_in_menu[$position])) {
echo '<a href="'.$arr_pages_content[($arr_pages_in_menu[$position]['id'])]['link_str'].'/"><p';
if ((isset($url_item[$max_url]) && $url_item[$max_url] === $arr_pages_in_menu[$position]['link'])) {
echo ' class="selected"';
}
echo '>• '.$arr_pages_in_menu[$position]['title'].'</p></a>';
_menu_print_child($arr_pages_in_menu[$position]['id'], 1);
$position ++;
}
if ($item['show']) {
echo '<a href="/'.$k.'/"><p';
if ((isset($url_item[0]) && $url_item[0] === $k && $k !== 'catalog')
|| ($k == 'catalog' && isset($url_item[$max_url]) && $url_item[$max_url] == 'catalog')) {
echo ' class="selected"';
}
echo '>• '.$item[$l].'</p></a>';
}
_menu_check_catalog($k);
$position ++;
}
while ($position < 100) {
if (isset($arr_pages_in_menu[$position])) {
echo '<a href="'.$arr_pages_content[($arr_pages_in_menu[$position]['id'])]['link_str'].'/"><p';
if (isset($url_item[$max_url]) && $url_item[$max_url] === $arr_pages_in_menu[$position]['link']) {
echo ' class="selected"';
}
echo '>• '.$arr_pages_in_menu[$position]['title'].'</p></a>';
_menu_print_child($arr_pages_in_menu[$position]['id'], 1);
}
$position ++;
}
include_once ($home_dir.'functions/_check_admin.php');
if (_check_admin()) {
echo '<a href="/admin/" class="red"><p>• Администрирование</p></a>';
}
if (M_USERS) {
echo '<br /><br /><div class="">';
include_once ($home_dir.'functions/local_print_login_form.php');
echo local_print_login_form(false, 'small');
echo '</div>';
}
if (M_SHOP) {
include_once ($home_dir.'functions/local_print_bask_link.php');
echo local_print_bask_link();
}
if (M_SEARCH) {
include_once ($home_dir.'functions/local_print_search_form.php');
echo local_print_search_form('small');
}
echo '
</td>';
}
}
?>
ну код кстати довольно простой. А для автора еще проще. Правда не впечатляющий. (смесь логики и представления)
пример хака для уменьшения запросов, конечно зачетный, но не думаю что сильно эффективный при большом кол-ве псевдонимов. Как говорится тут найдешь, там потеряешь.
Наконец-то я нашел здравомыслящего человека на этом сайте!))
иди уже отсюда
/me ждёт топиков на php.net:
-Интерпретатор плохой, буду писать свой
-Прочитал три книги Кнута, надо оптимизировать тут и тут
...
с блэкджеком??
Предлагаю обсудить хранение кода друпала в БД http://habrahabr.ru/blogs/webdev/66309/
Жаль, что Синкора нас покинул...
Как минимум с поддержкой базы данных вёрстки скрипта
у нас был проект на базе ZEN, веб-среды для базы данных cache.
весь код хранился в базе. среда разработки только ихняя.
передача кода -- через dump/import таблиц (потом правда стало возможным передавать через xml).
это ваще убиться можно. реальный банальный зонт для любителей труъ программирования. )
В слове "банальный" первая буква лишняя.