пятница, 19 ноября 2010 г.
Один день из программистской жизни проекта. Или как getimagesize делает dos-атаку сайта на себя.
Проект - это не только веселье и Селигер. Но и каждодневная кропотливая работа. А иногда - просто "мозгоразрывательная" работа. Как это было сегодня.Ковыряясь потихоньку в новой версии нашего портала http://www.argusm-edu.ru/, вдруг с неудовольствием заметил, что наш старый, и пока основной сайт http://www.argusm.com/ перестал открываться. При попытке его открыть сервер выдавал 503 ошибку, а кроме всего прочего перестали открываться и все остальные сайты, лежащие на том же сервере. В ходе долгой переписки со службой поддержки хостинговой компании удалось выяснить, что причина всего происходящего - превышение числа запущенных процессов сервера Apache. Причем это НЕ dos-атака, т.к. запуск процессов инициирует сам сайт.Получилась оригинальная картинка. Изменения в код сайта не вносились, но он вдруг стал "зацикливаться" сам на себя. Причем логи как хостера, так и наши собственные подтверждали - сайт открывается действительно с ip-адреса сервера. Возникает вопрос, как? Поиск ответа на который и стал самым "мозгоразрывательным" действием на сегодня.В подробности "отладки" сайта углубляться не буду, расскажу непосредственно о причине такого безобразия. При последовательном подключении шаблонов, начиная с абсолютно пустой страницы, ошибка нашлась в той части, где отображался список ВУЗов, введенных в систему. Этот список отображается всего одной функцией, поэтому стало понятно, где надо искать.Какого же было мое удивление, когда оказалось, что своеобразную dos-атаку сайта на самого себя генерирует функция getimagesize, которая вызывается с пустым параметром. Проще говоря, после обновления базы данных в список отображаемых ВУЗов попали те, у которых не был загружен логотип (в базе - пустое поле вместа ссылки на изображение). А при отображении логотипа размеры изображения в HTML-коде проставляются динамически на основании данных, возвращаемых функцией getimagesize. Только вот при передаче пустого значения в качестве имени файла получается, мягко говоря, не очень хороший результат.Мораль сей басни какова? "Интересно, какие еще варианты нестандартного поведения есть у других функций PHP?"
Ярлыки:
503,
аргус-м,
недоступен,
ошибка,
проблема,
программирование,
проект,
сервер,
apache,
dos-атака,
getimagesize,
php
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий