войти зарегистрироваться

КодоБредФеерические архитектурные подходы или Javascript наше всё

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

КодоБредДыры в форуме NetCat

Вы наверное уже слышали о CMS Netcat и даже видели кое-какие примеры кода этой CMS.

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

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

Вот я и решил поделиться этим багом.

1) Заходим в любую ветку форума, пусть для определенности будет эта.
1,5) Если вы залогинены, нужно выйти
2) Нажимаем Ответ
3) Вводим в поле «Имя пользователя» число.

Все!

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

Можно представить, какой бардак творится в коде у системы.

UPD. Сейчас форум на сайте компании закрыли. Если в ближайшее время появится патч, можно считать что я добился того, что хотел, публикуя эту статью.

Веб-разработкаХабрапоиск + Визуальный поиск в IE8

Категорически приветствую тебя %username%.
Не знаю как у Вас, а у меня ночью наступает «творческий порыв», о чем я обычно утром очень сильно жалею. Но не будем сейчас о плохом, т.к. пока не утро, то я еще успею поделиться одним из

Персональные блоги Перебор, бессмысленный и беспощадный

Этот кусок AS1-кода задаёт поведение нескольких кнопок. Орфография и пунктуация сохранены. Я уж прямо не знаю, смеяться или плакать — мне такого кода выдали пару десятков тысяч строк и сказали доделать…

onMouseDown = function() {;
if (btn_right._visible && btn_right.enabled) {;
if(btn_right.hitTest(_xmouse, _ymouse, 0)){;
btn_right_release();
};
};
if (ready._visible && ready.enabled) {;
if(ready.hitTest(_xmouse, _ymouse, 0)){;
ready_release();
};
};
if (ready2._visible && ready2.enabled) {;
if(ready2.hitTest(_xmouse, _ymouse, 0)){;
ready2_release();
};
};
if (yesno.no._visible && yesno.no.enabled) {;
if(yesno.no.hitTest(_xmouse, _ymouse, 0)){;
no_release();
};
};
if (yesno2.no._visible && yesno2.no.enabled) {;
if(yesno2.no.hitTest(_xmouse, _ymouse, 0)){;
no2_release();
};
};
};

КодоБред Определение размера файла

function GetCountDesk($file) {
    if (file_exists("$file")) {
       $test = file("$file");
       return(sizeof($test));
    } else return(0);
};

КодоБредПричины и следствия

Здесь я хочу поделиться с вами тремя примерами неадекватного кода. И в то же время постараюсь разобрать и классифицировать каждый случай. Тем самым расскажу не только «что такое плохо?», но и «почему?»

КодоБредJavaScript

Сегодня на работе встретил в коде на JS довольно забавный кусок:

obj_.checked=(obj_.checked==true)?false:true;

КодоБредИнтересный отрывок скрипта регистрации

Просматривал исходники одного проекта, зарубежный портал с возможностью публикации аудио-видео и т.д., не суть важно. И вот так там реализована регистрация пользователей, вернее — получение id пользователя при его регистрации.