X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

14 страниц V  « < 3 4 5 6 7 8 9 10 11 12 13 14 >
Открыть тему
Тема закрыта
> Коробочная CMS vs Самопис, Как не ошибится в выборе?
serval
serval
сообщение 12.5.2013, 21:01; Ответить: serval
Сообщение #122


Код самописа можно проверить за 5 минут, а в CMS даже не поймёшь сразу, что взломали.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
webpavilion
webpavilion
Topic Starter сообщение 15.5.2013, 21:32; Ответить: webpavilion
Сообщение #123


serval, за 5 минут можно проверить только 100 строчек кода, а вот прочитать можно 200 или проскролить 5000 только толку от этого? CMS за вас уже проверили 100 человек и банальных ляпов вроде get без фильтрации в mysql там по умолчанию быть не может.


--------------------
Не ведитесь, cамопис это почти всегда плохо!

Делаю сайты на Drupal 7.x
(очень дорого)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Kirils
Kirils
сообщение 16.5.2013, 2:10; Ответить: Kirils
Сообщение #124


А по поводу фреймворков у кого какие мнения? Ведь на фреймворке можно поднять самопис, который с одной стороны легче CMS, с другой лишён многих глупостей чистых самописов.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
webpavilion
webpavilion
Topic Starter сообщение 16.5.2013, 9:23; Ответить: webpavilion
Сообщение #125


Kirils, вот тут пример по поводу CodeIgniter http://www.maultalk.com/index.php?act=find...amp;pid=1612095 сами фреймворки это безусловно благо, но не понимание принципов их работы и банальная нехватка знаний приводит к печальным последствиям.

В приведенном выше примере на рендер одной страницы с десятком комментариев уходило ~250 mysql запросов.


--------------------
Не ведитесь, cамопис это почти всегда плохо!

Делаю сайты на Drupal 7.x
(очень дорого)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
devuser
devuser
сообщение 16.5.2013, 12:54; Ответить: devuser
Сообщение #126


webpavilion, так и на 500 запросов можно сделать, если руки кривые.
От исполнителя много зависит - можно и на CMS сделать решето, и на фреймворке безопасный сайт.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
webpavilion
webpavilion
Topic Starter сообщение 16.5.2013, 14:13; Ответить: webpavilion
Сообщение #127


devuser, где то тут в середине обсуждения все сошлись на этой мысли: "не важно на чем делать, важно кто делает".


--------------------
Не ведитесь, cамопис это почти всегда плохо!

Делаю сайты на Drupal 7.x
(очень дорого)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Didge
Didge
сообщение 26.5.2013, 16:36; Ответить: Didge
Сообщение #128


- Шеф, у нас дырка в безопасности.
- Хоть что-то у нас в безопасности.


Фрагмент кода системы, на разработку которой выделено $0.5 ляма:
function user_login_ldap($username, $password) {
    // ToDo
    if (!$ds = ldap_connect(...)) {
        // ToDo
        return ...;
    } else {
        // ToDo
        return ...;
    }

    // Оригинальный комментарий автора:
    // !!!Выяснить, почему выполнение скрипта не доходит до этой точки!!!
    // ToDo
}
Сей "самопис" как-бы намекает нам на следующие вещи:
1. Хоть автор и не школьник по возрасту (в футере странички - шильдик со ссылкой на сайт разработчика), но как работает "return" ещё не разобрался;
2. Кто-то нехило "попилил" на этом проекте.
Из этого же проекта:
"SELECT * FROM `users` WHERE `login`='".$_POST['currentLogin']."' AND `password`='".$_POST['currentPassword']."'"

Это просто WIN!!! Кстати, этот фрагмент и сделал возможным для нас с вами просмотр исходного кода.

Не буду вдаваться в дальнейшие подробности относительно кода сего "самописа", приведу список "лучших" практик от его разработчиков:
1. Создайте пользователя "webuser" для доступа к БД и дайте ему все те же привилегии, что имеет root. Особенно не забудьте "FILE" и "DROP"! Используйте этого юзера для всех БД.
2. Создавайте побольше каталогов и файлов с доступом на запись.
3. Не солите хэши. Храните их в обычном md5 (в идеале - в виде plain text).
4. При разработке админки, не забудьте написать файловый менеджер, позволяющий загружать любые типы файлов.
5. Входящие данные не проверяйте. Если проверяете, не используйте подход с белым списком. Это ведь неудобно!
6. Установите на сервер, где запускаете проект, python, gcc, perl, golang, etc. Чтобы из PHP шелла можно было заливать любой другой.
7. Не забудьте написать "систему безопасности", фиксирующую IP адреса / хосты всех посетителей и сохраняющую эту информацию в общую БД.
8. Настройте sudo, чтобы работал со всеми пользователями и без запроса пароля.
9. Не обновляйте ОС и сторонние скрипты хотя бы по году. Патчи к критическим уязвимостям уверенно игнорируйте.
10. Выставляйте chmod 777 на все логи в системе.
11. В конфиг файле храните побольше паролей и ключей: LDAP, RADIUS, WSDL...
12. Используйте один и тот же пароль для разных серверов / аккаунтов / интернет-банкингов.
13. Если вам сообщают об уязвимостях, катите бочку на такого "информатора", угрожайте ему.
14. Если вы попильщик и получаете сообщение с обеспокоенностью по поводу качества работы, игнорируйте послание.


Другой пример. Учебное заведение, Нью Йорк, стоимость обучения $200k / 4 года с рыла. Весь софт - готовый: WP, интернет-магазин контента (лицензия - много бачей зелени в месяц), куча других CMS'ок. И лишь несколько страничек "самописа" дают возможность злоумышлиннику получить доступ к УУУУЙМЕ конфиденциальной информации по студентам и сотрудникам. Что называется, почуствуй себя сотрудником ЦРУ. Кроме того, возможность менять размер "поддержки" aka "скидки на обучение" студентам.
Прикрепленное изображение

SQLMap в действии.
Самое забавное - уведомление на сайте, типа "Уважаемый пользователь! Если считаешь, что твой аккаунт скомпрометирован, тысамдурак. Больше не заходи на фишинговые сайты и не суй свой пароль во все дыры. С уважением".


Информационное агенство. "Самопис". 3 разработчика на постоянке. Фрагмент:
"INSERT INTO ... (...) VALUES (.., ".$_SERVER['HTTP_USER_AGENT'].")"
А пацаны то и не в курсе, что юзер агент - тоже пользовательская информация и требует предварительной обработки. Как и не в курсе о том, что файлы прямо на сервере редактировать плохо. Ещё хуже, если после этого остаются бэкапы.


Все три проекта размещены в своих "типа ДЦ". Представляют собой связку большого или оочень большоооооооого количества серверов. Могут стать частью БОТнета. Или уже стали?


Собственно, к чему я всё это.
1. Худший вариант - "самопис". При любом раскладе.
2. Если готовая CMS обладает необходимым вам функционалом и отвечает всем необходимым требованиям / вы стеснены в средствах, CMS - это ваш выбор.
3. В остальных случаях - писать на базе фреймворка. На нём даже эпичный мудак столь критических уязвимостей не сделает.


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
webpavilion
webpavilion
Topic Starter сообщение 26.5.2013, 21:21; Ответить: webpavilion
Сообщение #129


(Didge @ 26.5.2013, 16:36) *
В остальных случаях - писать на базе фреймворка. На нём даже эпичный мудак столь критических уязвимостей не сделает.

вам видимо какие то недоделанные мудаки попадались, из моей практики попадались такие шедевры на популярных фреймворках что просто диву даешься как их авторы еще живы.


--------------------
Не ведитесь, cамопис это почти всегда плохо!

Делаю сайты на Drupal 7.x
(очень дорого)


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Didge
Didge
сообщение 26.5.2013, 21:34; Ответить: Didge
Сообщение #130


Перечитал все посты. Обнаружил, что имеет место мнение: "Популярные коробочные решения подвержены взломам в силу наличия готовых эксплоитов. Самописные же безопасны, ибо никто не знает об их структуре". Итак, несколько слов из своего опыта...
Что делает black hat "аудитор безопасности"? Во первых, отмечу тот факт, что подходы могут быть разные. Пересекался с одним господином - основателем и CEO своей infosec компании в Канаде. Так вот он в этих ваших языках программирования - ни в зуб ногой. Компания с явным уклоном на безопасность сетей и инфраструктуры. Поставь они перед собой задачу сломать сайт, стали бы смотреть в сторону проблем с конфигурацией вашего сервера, наличия открытых портов и эксплоитов на ОС / php / mysql / etc. При отсутствии всего перечисленного, как сей господин неоднократно шутил, нужно было бы "переспать с системным администратором компании с целью заполучить пароли".

Однако, я в этих ваших сетях и инфраструктурах не преуспел. Поэтому использую несколько иной подход, основанный на поиске самого слабого звена цепи (то бишь, в высокоуровневой прослойке):

1. Прежде всего, делается предположение относительно системы, на которой функционирует ресурс;
2. Если это "самопис" и совершенно очевидно, что фреймворк не использовался, в ~90% случаев это означает наличие sql инъекций и кучу других уязвимостей. Хотя необходимость искать другие вектора атаки, как правило, отсутствует ибо sql инъекция - достаточна для заливки шелла и последующих манипуляций с информацией на сервере;
3. Если это ресурс на базе CMS... На самом деле, вероятность найти в популярном контент менеджере что-то настолько эпичное, как sql injection - стремится к нулю. А вот в основе плагинов может быть "самопис" с большой буквы "С". Поэтому внимание уделяется таким вот плагинам. Если они написаны на заказ (с закрытым исходным кодом), вероятность эпических уязвимостей опять очень и очень велика. Ещё очень часто "разработчики" не осиливают освоение архитектуры CMS и пишут рядом с CMS свой велосипед. А это опять "самопис".
И лишь не обнаружив "самописа", глядим на версию системы и доступные в паблике эксплоиты. Расшибать головой стену и искать что-то хитрое, как правило, не требуется. Поэтому, если эксплоитов не найдено, лучше продолжить поиски других векторов.
4. Если это фреймворк, возможность эпических уязвимостей с большой долей вероятности отсутствует. Тут нужно искать ошибки в логике, пробовать ввод непредусмотренных данных. Вот такой пример подслушанный мной у Самуэля Тыну, специалиста по безопасности, была такая дырка у одного банка... Форма отправки денег. Вводим сумму, адресат. Нажимаем отправить, адресат получает средства. Ввести сумму больше 8 символов нельзя, она обрезалась на серверной стороне, а затем приводилась к int. Тогда тестировщик ввёл сумму в научной нотации. Коротко и много. По длине строка на серверной части прошла, а затем переполнила интовую переменную и получилась отрицательная величина вроде -1000000$. Система проверила, больше ли у пользователя на балансе, чем минус миллион. Да. Далее, провела такую операцию Баланс_тестировщика = Баланс_тестировщика - (-1000000$). Т.е. тот пополнил свой баланс на один миллион. При этом с баланса получателя списался этот миллион. Эпично.

Мораль сей басни. "Ресурс с нуля" (без фреймворка) в абсолютном большинстве случаев говорит о низкой квалификации разработчиков. Security by obscurity, на который разработчики самописных решений так расчитывают - не тот путь, что ведёт к безопасности. Админка, которую все наровят спрятать, легко находится даже если она находится по адресу http://site.ru/has62t23gdgsiADMIN. Кроме того, в арсенале взломщика есть куча полезных инструментов, которые и просканируют и найдут и сделают это с наименьшим шумом в логах.

И таки да. При желании, и на фреймворке можно "самопис" сделать. Но только зачем тогда фреймворк? Там ведь код какой-то лишний. А у нас синдром NIH (Not invented here). Лучше уж тогда с нуля.

P.S.: В общем, я за использование CMS, если функционал и организация системы вас устраивает (кому Джумлу ставить "не солидно", как здесь тоже прозвучало, ставьте "Zotonic CMS" на Erlang; говорите, что у вас самая отказоустойчивая система из всех существующих на рынке / ещё что-нибудь, что "солидно"). Проект - не типичный ресурс вида новости-статьи-фото-smth? Тогда пилим своё на фреймворке. Кстати, рекомендую книгу Getting Real тем, кто соберется работать над своим продуктом. Оченнама интересная и полезная книга.

Сообщение отредактировал Didge - 26.5.2013, 21:47


Поблагодарили: (3)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Drupal_way
Drupal_way
сообщение 27.5.2013, 19:03; Ответить: Drupal_way
Сообщение #131


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


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
14 страниц V  « < 3 4 5 6 7 8 9 10 11 12 13 14 >
Открыть тему
Тема закрыта
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Перенос сайта на CMS Wordpress
8 freeax 4956 10.3.2024, 14:58
автор: freeax
Открытая тема (нет новых ответов) Обновить сайт на CMS DLE
1 Sawich 1662 2.9.2023, 10:10
автор: WoWeb
Открытая тема (нет новых ответов) [Продам] базы сайтов на CMS Wordpress/Joomla/Drupal/Magento/...
14 phosphoruss 13763 16.8.2023, 15:27
автор: SmmPanelUS
Горячая тема (нет новых ответов) Сайт "под ключ" (дизайн, верстка, CMS)
32 Brans 16529 19.5.2023, 22:01
автор: Brans
Открытая тема (нет новых ответов) АПИ Таобао, 1688 для интеграции на сайты различных CMS
0 NittaSau 860 28.4.2023, 18:07
автор: NittaSau


 



RSS Текстовая версия Сейчас: 19.4.2024, 20:02
Дизайн