|
Веб-курсы Что это? Оглавление Основы Основы основ Практика Гостевая книга Простой сайт Структура сайта (MVC) Ядро (Light) Ядро Гостевая на SQL Статические страницы Модуль новостей Система регистрации Теория Дебаггинг Регулярные выражения Введение в ООП Паттерны проектирования Репозитарий BB-code Почтовый класс Пагинатор Всякие полезности Download Полезные утилиты Разное Видеокурсы Последние изменения Вопросы и замечания сюда Реклама Диеты для похудения Фреймворк Kohana. Обучение. Мануал на русском. My friend is dreaming about this beautifull mens skull bracelet and going to buy it online. |
Не радуйтесь. Нет тут видеоуроков. Нет и не будет.
Вернее есть один, для примера. Для того, что бы Вы поняли, что видеоуроки - это жуткое зло, хуже придумать просто невозможно. Потому что: 1. Они лишают обучающегося возможности думать, анализировать и влиять на процесс. 2. Самое главное. Все допущенные в курсе ошибки остаются в нем навсегда. Вот тут есть более развернутый обзор пагубного влияния таких курсов на незакаленные умы начинающих пограммистов. Если Вас еще не коснулась эта зараза, сей раздел можно пропустить, так как он может оказаться сложным для понимания. А самое главное - совершенно неинформативным. Полезным он будет для тех, кто решил, что овладел премудростями PHP, посмотрев пару мультиков а'ля "Профессиональный сайт за один день". Я скачал первый попавшийся, для того, чтобы показать в действии насколько много ляпов можно допустить в пятиминутном видеокурсе. Приступим к вскрытию. Первое, что бросилось в глаза - дата выпуска скрипта.
То есть на полном серьёзе нам втюхивают скрипт 7-ми летней давности. За 7 лет настолько много всего изменилось, что после этой строчки можно дальше не читать вообще ничего. А не то что использовать это на боевом сайте. Продолжаем.
Дальше.
Тут вообще отдельная история. В скрипт подключается текстовый! файл конфигурации. Да, попытка защитить информацию есть, через .htaccess Но что будет, если по чьей-нибудь оплошности его не окажется в каталоге? Стоит набрать в адресной строке это http://test1.ru/secret/config.inc и вся конфига на ладони. А что в ней:
А в ней открытые, незашифрованные аутентификационные данные. Берите люди добрые. Вопрос. Почему, коль скоро этот код исполняемый, не сделать расширение файла .php? Тогда никаких проблем с защитой информации, содержимое файла получить почти невозможно. Дальше пошли.
Не всегда ip находится в REMOTE_ADDR. Иногда в HTTP_X_FORWARDED_FOR к примеру. Или в HTTP_X_FORWARDED или HTTP_FORWARDED_FOR... Это, вообще-то, нужно сначала уточнить на хостинге, потом уже использовать. Или хотя бы сделать так:
Кроме того, зачем гонять функцию getenv(), если можно сразу обратиться к нужному элементу массива $_SERVER? Поехали дальше.
Второе. Зачем "$SERVER" в кавычках? Это снижает читабельность и тормозит процесс. Третье. Переменные зарегистрированы в массиве $GLOBALS, а это дырка. И вообще, для чего вообще там регулярка? Проверку на соответствие можно осуществить и просто, не рискуя, что может пройти что-то незапланированное. Вот так это должно выглядеть:
Продолжаем движение.
Позвольте полюбопытствовать, откуда у нас переменная $out? Нигде ни пол-слова небыло сказано, что нужно включить диррективу register_globals Делать этого правда нельзя ни в коем случае, так как это дыра. Эту переменную, кстати, можно и не уничтожать, не мешает она ни кому. А вот с сессией поступают обычно наоборот. И перенаправление посредством js - совсем моветон. А если он отключен? Шор-теги(<?=$SERVER?>), обычно применяют только ленивые люди. Это чревато. Вот так корректно:
Продолжаем разговор. Это зачем? Это уже было выше по коду.
Еще дальше.
Ну про глобальные переменные уже не стоит говорить. Ниже смотрим.
Тут, если честно, разбираться лень в логике. Что-то там считается (попытки взлома) и если не так - шлем письмо. Может быть и пошло бы, но опять глобальные переменные. Ниже вроде особо ничего страшного, если не брать во внимание, что почта формируется с нарушениями. Ни о каком RFC даже и речи нет. Так что вот. Практически в каждой строчке ляп. А самое главное - ведь не исправить теперь этого. Потому что курс пошел по рукам. Даже если исправить ляпы в новой версии, тут (и у тех, кто успел скачать) этот срам будет жить вечно. А посему мы не планируем выпуска видеокурсов. Наши курсы тоже не идеальны, там тоже есть ляпы. Но мы их постоянно (с Вашей помощью) находим и исправляем. За что отдельное спасибо. Задавайте побольше вопросов - будет толк. И для Вас и для курсов. А если интересно дальше - добро пожаловать на разбор самых популярных |