Comments 49
НЛО прилетело и опубликовало эту надпись здесь.
думаю лучшее что можно сделать, это написать своё, возмётесь?)
смысла нет. проще и правильнее доработать то, что есть. это и хотел обсудить.
это блог о drupal и многие владельцы/разработчики drupal-сайтов возможно и не догадываются какие проблемы присутствуют их сайтах.
так-что цели у меня было две:
1. обратить внимание, что надо решать проблему
2. развеять витающий с недавних пор миф о том, что на drupal-можно построить за три дня "супер-проект". на нем можно многое построить, но все не так просто, как кажется на первый взгляд. будьте к этому готовы и не бросайте все, когда через три дня ничего не получится :)
это блог о drupal и многие владельцы/разработчики drupal-сайтов возможно и не догадываются какие проблемы присутствуют их сайтах.
так-что цели у меня было две:
1. обратить внимание, что надо решать проблему
2. развеять витающий с недавних пор миф о том, что на drupal-можно построить за три дня "супер-проект". на нем можно многое построить, но все не так просто, как кажется на первый взгляд. будьте к этому готовы и не бросайте все, когда через три дня ничего не получится :)
смысл есть...
любая смс создана для решения каких-то конкретных проблем. для начала проекта вполне подходит готовый вариант, но позднее его нужно конкретно дорабатывать под свои нужды и не факт, что тогда выйдет дешевле - создание проекта с нуля или необходимость разобраться в движке настолько, чтоб переделать все :)
любая смс создана для решения каких-то конкретных проблем. для начала проекта вполне подходит готовый вариант, но позднее его нужно конкретно дорабатывать под свои нужды и не факт, что тогда выйдет дешевле - создание проекта с нуля или необходимость разобраться в движке настолько, чтоб переделать все :)
иногда стоит быстро запустить проект на готовом движке и занять нишу, а потом хоть дорабатывать, хоть переписывать. и пусть это стоит в несколько раз дороже, выгоды будет больше.
если начинать проект с написания собственного движка, то можно:
1. не успеть сделать это первым
2. сильно разочароваться, когда окажется что проект не в состоянии добиться той популярности, на которую вы рассчитывали.
НО! Данная тема не об этом. давайте по существу поговорим. Как защищаться то будем?
если начинать проект с написания собственного движка, то можно:
1. не успеть сделать это первым
2. сильно разочароваться, когда окажется что проект не в состоянии добиться той популярности, на которую вы рассчитывали.
НО! Данная тема не об этом. давайте по существу поговорим. Как защищаться то будем?
Поддерживаю... Drupal великолепно подходит как платформа для начала но с его дырявостью нужно что-то делать.
К сожалению, я с PHP дружу пока не очень (другие предпочтения) поэтому даже не знаю, в какую сторону копать.
К сожалению, я с PHP дружу пока не очень (другие предпочтения) поэтому даже не знаю, в какую сторону копать.
...а я только все собирался бросить и ставить себе Drupal...
Свое делать смысл есть. но не с нуля.
По личному опыту, на написание CMS-ки уходит тонны времени и нервов, особенно на фоне наличия готовых решений, на которые приходиться ориентироваться.
Drupal разрабатывает группа разработчиков + пользователи, а собственный продукт в течении года/двух/... придеться делать самолично.
Хотя, есть и плюсы. Я, например, легко могу исправить баги в своей работе , т.к. знаю ее изнутри.
Свое делать смысл есть. но не с нуля.
По личному опыту, на написание CMS-ки уходит тонны времени и нервов, особенно на фоне наличия готовых решений, на которые приходиться ориентироваться.
Drupal разрабатывает группа разработчиков + пользователи, а собственный продукт в течении года/двух/... придеться делать самолично.
Хотя, есть и плюсы. Я, например, легко могу исправить баги в своей работе , т.к. знаю ее изнутри.
В данном случае виноват не Друпал, а конкретный модуль к нему.
Над Друпалом неслабая команда, он крутится на тысячах сайтов, выявляемые проблемы оперативно устраняются - выходят обновления.
А вот качество дополнительных модулей сильно варьирует.
Есть основные, над которыми активно работают те же разработчики что и над Drupal Core (типа Views, CCK), на них можно положиться.
А вот всякие мелкие модули залитые неизвестно кем могут быть весьма и весьма глюкавыми.
Так что нужно смотреть, выбирать и проверять
Над Друпалом неслабая команда, он крутится на тысячах сайтов, выявляемые проблемы оперативно устраняются - выходят обновления.
А вот качество дополнительных модулей сильно варьирует.
Есть основные, над которыми активно работают те же разработчики что и над Drupal Core (типа Views, CCK), на них можно положиться.
А вот всякие мелкие модули залитые неизвестно кем могут быть весьма и весьма глюкавыми.
Так что нужно смотреть, выбирать и проверять
я бы только добавил что написание проекта с нуля не гарантирует отсутствие каких-либо проблем безопасности, производительности, стабильности и т.д.
ага. а еще обязательно написать с нуля ОС, дабы не закладываться на глюки венды и ужасных линуксов, обязательно собственное железо (процессор главное собственной разработки).
ах, да. и итнернет, тоже, свой.
ах, да. и итнернет, тоже, свой.
Когда своё ломают не так обидно или что? :)
С XSS проблемы бывают и у самых крупных социальных сетей, например, помниться случай с MySpace. Что касается друпала вы бы сначала им в багтрекер написали, а потом бы выкладывали здесь, так как они к секурным ошибкам очень строго относятся.
:))) ага, именно потому, что они очень строго относятся к секруным багам, они не стали писать никаких парсеров для обработки тегов.
Есть мнение, что друпал вы видели только на картинках.
Какая разница, видел я его на картинках, или глубже. Есть несколько разновидностей секурных багов, в том числе и XSS. И за отсутствие таковых все форумы, порталы и прочие свободные движки борятся днем и ночью. Это настолько замусоленная тема, что уже тошно. Ребята с antichat.ru одно время стабильно раз в неделю публиковали новые xss в разных форумах.
Но нет, вы что, друпал это совсем другая тема и раз я видел его только на картинках, значит они действительно очень секурные.
Но нет, вы что, друпал это совсем другая тема и раз я видел его только на картинках, значит они действительно очень секурные.
запостал для начала на модуль vote_up_down. посмотрим какое решение разработчик предложит.
http://drupal.org/node/213682
http://drupal.org/node/213682
Что бы этого избежать я генерировал случайный идентификатор и писал его в сессию и как приставку к урлу (&voteid=blablabla) + привязка по ip + привязка к промежутку времени. Жутко? ))))
Я сейчас тоже подумал о решении данной продемы и так же прихожу к выводу, что URL для голосования должен быть переменный, меняющимся во времени. Тогда подставить его в тег IMG будет практически невозможно. Кривязку к сессии URL'а можно не делать, чтобы сэкономить ресурсы сервака.
лучше просто не использовать GET запросы для чего-то важного, вроде голосования
тоесть вы предлагаете решение на уровне конкретного модуля?
я бы предпочел решение на уровне фильтра для пользовательского контента.
правда пока не придумал по какому принципу фильтровать.
я бы предпочел решение на уровне фильтра для пользовательского контента.
правда пока не придумал по какому принципу фильтровать.
можно заставить других комменты писать или карму добавлять :)
достаточно в парсере кода, поступающего от пользователя, запретить динамические картинки. И все, в общем-то.
Конечно, если парсер пропускает iframe и прочую опасную чепуху вплоть до яваскрипта то придется защищать все свои голосовальные скрипты и прочее.
Тогда, по-моему, достаточно передавать в скрипт, принимающий голос +\-
закодированный параметр какойто и время
$votelink = 'vote.php?id=1&sec'.md5($_SERVER['REMOTE_ADDR'].'no-fuckin-way').'&stamp='.time();
Конечно не нужно проверять 100%ное совпадение $_GET['stamp'].
Что-то вроде
$validVote = ((intval($_GET['stamp']) - time()) < 60) ? true : false;
if(!$validVote)
{
die('No more jokes, you moron!');
}
Конечно, если парсер пропускает iframe и прочую опасную чепуху вплоть до яваскрипта то придется защищать все свои голосовальные скрипты и прочее.
Тогда, по-моему, достаточно передавать в скрипт, принимающий голос +\-
закодированный параметр какойто и время
$votelink = 'vote.php?id=1&sec'.md5($_SERVER['REMOTE_ADDR'].'no-fuckin-way').'&stamp='.time();
Конечно не нужно проверять 100%ное совпадение $_GET['stamp'].
Что-то вроде
$validVote = ((intval($_GET['stamp']) - time()) < 60) ? true : false;
if(!$validVote)
{
die('No more jokes, you moron!');
}
Может быть не совсем в тему...
Не так давно на Хабре один преподаватель просил совет - какие дать задания (веб-разработка) для курсовых проектов своим студентам. Насоветовали много - соц.сеть, файл-обмен, хостинг картинок и т.д. и т.п. При этом все нужно было сделать с февраля до мая.
И как же многие тут восторгались - "ах нам бы такого преподавателя".
Разделю этот восторг лишь от части. Потому что события последних дней на хабре (дефейс и целая куча "вдруг" выявленных дешевых уязвимостей), ярко продемонстировали, что будет из таких студентов в будущем (точнее, какие проекты они потом будут делать).
Не лучше ли было загрузить студентов сделать что-то маленькое, но хорошее и доведенное до ума на все 100% ? Например, банальный файл-аплоад с индикатором прогресса, систему аутентификации, парсер хтмл-коментариев, которые постят пользователи, на предмет вырезания потенциально опасных тэгов, и т.п.
В противном случае, мы рискуем расхлебывать подобные глюки еще очень-очень долго и совсем в других масштабах.
Рискну предложить перечитать вот эти статьи:
http://russian.joelonsoftware.com/Articles/BacktoBasics.html
http://russian.joelonsoftware.com/Articles/AdviceforComputerScienceC.html
http://local.joelonsoftware.com/mediawiki/index.php/%D0%9E%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D0%BE%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BD%D0%B0_Java
PS
Когда-то очень очень давно, на первом курсе института, мы учили Бейсик. Да-да, простой Бейсик, не визуал. Из средств разработки на тот момент самым "крутым" был турбо паскаль 3.0 - но я не об этом. Так вот, с первых же лекций и до диплома (когда бейсик все уже успели тыщу раз забыть) звучала магическая фраза "защита от дурака". Т.е. преподаватель мог попросить тебя запустить твою программу по решению квадратных уровнений, например, и ввести вместо начальных данных все что ему угодно (хоть попрыгать на клавиатуре). Если твоя программа после этого "падала", то шансы получить "отлично" у тебя резко уменьшались, даже если ты применил какой-то супер-пупер алгоритм и закодировал все в 3 строчки - это уже никого не волновало, ибо программа это целостный организм.
К чему бы это я все.... Ах да, при всем при этом, специальность моя в институте к программированию имела лишь опосредованное отношение.
В общем, плохи дела, "учите мат.часть", а ссылки я уже дал.
Не так давно на Хабре один преподаватель просил совет - какие дать задания (веб-разработка) для курсовых проектов своим студентам. Насоветовали много - соц.сеть, файл-обмен, хостинг картинок и т.д. и т.п. При этом все нужно было сделать с февраля до мая.
И как же многие тут восторгались - "ах нам бы такого преподавателя".
Разделю этот восторг лишь от части. Потому что события последних дней на хабре (дефейс и целая куча "вдруг" выявленных дешевых уязвимостей), ярко продемонстировали, что будет из таких студентов в будущем (точнее, какие проекты они потом будут делать).
Не лучше ли было загрузить студентов сделать что-то маленькое, но хорошее и доведенное до ума на все 100% ? Например, банальный файл-аплоад с индикатором прогресса, систему аутентификации, парсер хтмл-коментариев, которые постят пользователи, на предмет вырезания потенциально опасных тэгов, и т.п.
В противном случае, мы рискуем расхлебывать подобные глюки еще очень-очень долго и совсем в других масштабах.
Рискну предложить перечитать вот эти статьи:
http://russian.joelonsoftware.com/Articles/BacktoBasics.html
http://russian.joelonsoftware.com/Articles/AdviceforComputerScienceC.html
http://local.joelonsoftware.com/mediawiki/index.php/%D0%9E%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D0%BE%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BD%D0%B0_Java
PS
Когда-то очень очень давно, на первом курсе института, мы учили Бейсик. Да-да, простой Бейсик, не визуал. Из средств разработки на тот момент самым "крутым" был турбо паскаль 3.0 - но я не об этом. Так вот, с первых же лекций и до диплома (когда бейсик все уже успели тыщу раз забыть) звучала магическая фраза "защита от дурака". Т.е. преподаватель мог попросить тебя запустить твою программу по решению квадратных уровнений, например, и ввести вместо начальных данных все что ему угодно (хоть попрыгать на клавиатуре). Если твоя программа после этого "падала", то шансы получить "отлично" у тебя резко уменьшались, даже если ты применил какой-то супер-пупер алгоритм и закодировал все в 3 строчки - это уже никого не волновало, ибо программа это целостный организм.
К чему бы это я все.... Ах да, при всем при этом, специальность моя в институте к программированию имела лишь опосредованное отношение.
В общем, плохи дела, "учите мат.часть", а ссылки я уже дал.
хехе. я тот самый преподаватель )) более того, пост, описывающий дефейс хабра того же автора ))
по сути вы абсолютно правы. я давно занимаюсь преподаванием и последние года 3 еще и вебом и хорошо понимаю, что:
во-первых, студенты реально хороший продукт сделать не могут, т.к. они делают его впервые. в нем будет море дыр, уязвимостей, непродуманностей, багов, ситуационных решений и тп.
во-вторых, намного важнее дать им понять чем дышит разработка сколько-нибудь крупного проекта "внесколькером", как слушаться главного и как работать ответственно, кто и как должен тестить проект и почем дизайнер должен уметь верстать
в-третьих. лабораторную на разработку модуля "фотогалерея" студенты мне не сдают до тех пор, пока я могу нарушить ее работу. загрузкой скрипта, sql-инъекцией, чем угодно.
по сути вы абсолютно правы. я давно занимаюсь преподаванием и последние года 3 еще и вебом и хорошо понимаю, что:
во-первых, студенты реально хороший продукт сделать не могут, т.к. они делают его впервые. в нем будет море дыр, уязвимостей, непродуманностей, багов, ситуационных решений и тп.
во-вторых, намного важнее дать им понять чем дышит разработка сколько-нибудь крупного проекта "внесколькером", как слушаться главного и как работать ответственно, кто и как должен тестить проект и почем дизайнер должен уметь верстать
в-третьих. лабораторную на разработку модуля "фотогалерея" студенты мне не сдают до тех пор, пока я могу нарушить ее работу. загрузкой скрипта, sql-инъекцией, чем угодно.
поверьте, лично к вам у меня нет никаких претензий :))
наверное, я был бы очень рад, если б у нас в свое время были такие преподаватели, которые ставили интересные задачи и пытались выйти "за рамки".
а по-поводу ваших "во-первых, во-вторых, в-третьих" - перечитайте ссылки, которые я дал, если еще не сделали этого.
PS
можно вопрос личного характера. глянул ваш профайл только что, если он конечно не врет. и не стыковка получается какая-то: "я давно занимаюсь преподаванием" - это не со школьной ли скамьи?
наверное, я был бы очень рад, если б у нас в свое время были такие преподаватели, которые ставили интересные задачи и пытались выйти "за рамки".
а по-поводу ваших "во-первых, во-вторых, в-третьих" - перечитайте ссылки, которые я дал, если еще не сделали этого.
PS
можно вопрос личного характера. глянул ваш профайл только что, если он конечно не врет. и не стыковка получается какая-то: "я давно занимаюсь преподаванием" - это не со школьной ли скамьи?
сохранил. почитаю
ну с 1998 года. почти 9 лет. то что с 16 - не удивляйтесь, так оно и было. первые 2 года преподавал информатику на подготовительных курсах в колледже. потом учил ИТ в разных формах и разных людей. В ВУЗе преподаю (правда ну очень чуть-чуть) последние 4 года.
ну с 1998 года. почти 9 лет. то что с 16 - не удивляйтесь, так оно и было. первые 2 года преподавал информатику на подготовительных курсах в колледже. потом учил ИТ в разных формах и разных людей. В ВУЗе преподаю (правда ну очень чуть-чуть) последние 4 года.
сорри, меня "понесло" уже конкретно под конец дня.
во-первых, в PS забыл смайлик :))
во-вторых, на PS можно не отвечать и не обращать внимания.
во-первых, в PS забыл смайлик :))
во-вторых, на PS можно не отвечать и не обращать внимания.
Как давний поколонник Друпала все же посоветую о таких вещах писать в багтрекер данного модуля. Ну если поговорить захотелось прямо о модулях, то drupal.ru есть. Здесь же хочется видет более концептуальные статьи, к примеру мы недавно устроили мультисайт на разных доменах с частично расшаренной базой.
Как первые комменты превращаются в "НЛО прилетело и опубликовало эту надпись здесь." Это еще что за новая фишка?
Фильтруйте ввод, гардемарины..! =)
Кажись в настройках модуля есть опция "убирать ссылку". Она делает невозможным такие маневры, правда и лишает возможности голосовать безджаваскриптовцам, но "who cares?" :)
>> и это практически самое безобидное что можно делать
например?
вопрос не празндый, я пару дней назад начал уже один проект на Drupal (в том числе поставил упомянутый модуль), сейчас буду второй сайт уже делать, хочу знать чем может грозить подобная фича кроме накрутки пойнтов.
спасибо.
например?
вопрос не празндый, я пару дней назад начал уже один проект на Drupal (в том числе поставил упомянутый модуль), сейчас буду второй сайт уже делать, хочу знать чем может грозить подобная фича кроме накрутки пойнтов.
спасибо.
Sign up to leave a comment.
События на хабре, vote_up_down и многое другое