Pull to refresh

Краткий обзор качества коммерческой CMS на Perl

Reading time 3 min
Views 4.9K
В процессе занятия фрилансом мне периодически попадаются на препарирование сайты написанные на Perl. Глядя на код, я понимаю, откуда появилась дурная слава Perl в области Web разработки. Но не будем углубляться в холивар.
Вчера мне в руки попал движок X1-forge. Надо особо отметить что он активно продаётся и весьма нескромно расхваливается на сайте. Итак, что же с ним не так?

Клиент обратился с жалобой на невозможность залогиниться в админку. По словам клиента произошел сбой после удаления с сайта некоего вируса (как оказалось позже это было простым совпадением). После изучения кода, обнаруживаю что кукис после ввода логина/пароля в админку ставится с параметром:
Cookie_Exp_Date = "Sat, 31-Dec-2011 12:00:00 GMT";
Т.е. с первого января 2012 года войти в админку можно, но только на 1 запрос, ничего изменить/сохранить нельзя. Браво!
Иду в файл cgi-bin/admin/cookie.pl чтобы поправить это безобразие и вижу:
#####################
## Site Makers X-forge (10.01) | Программный модуль интернет-системы
## (c) ООО "Сайт Мэйкерс". 2008. Все права защищены.
## Производится с 1998 года.
## Лицензиар: ООО "Сайт Мэйкерс" | +7 (495) 544-88-61 | office@sitemakers.ru | www.sitemakers.ru
## Сайт продукта: www.xforge.ru
#####################
## Копирование, модификация, перезапись, перемещение, удаление и вывод на печать данного файла запрещены.
## Указанные операции могут быть произведены только сотрудниками службы технической поддержки ООО "Сайт Мэйкерс".
## Читая эти строки знайте, что прямо сейчас неосторожными действиями Вы можете нанести ущерб Вашему интернет-проекту.
## Немедленно выйдите из просмотра файла БЕЗ СОХРАНЕНИЯ и в будущем не открывайте никаких файлов программных модулей.
#####################


Вроде всё как надо, если бы не одно «но» — сам код взят из свободного источника (я и сам им пользовался — потому и узнал) и вряд ли может продаваться с таким копирайтом.
Ну да ладно, правлю дату, смотрю в FireBug как ставятся кукисы — и тут вылавливаю его, бага с большой буквы.
Система после логина в админку ставит два кукиса:
1. codeadm — содержит логин пользователя (универсальный admin вполне годится)
2. loginadm — содержит текст «loginadm», подтверждая факт логина в админку
И всё! Никаких больше проверок! А зачем, ведь кукисы подделке не подлежат и им можно доверять абсолютно!
Как-то это не вяжется с
Политика комании Сайт Мэйкерс с самого начала ее образования - организация безопасных ресурсов и прежде всего безопасных Интернет-магазинов. Эта политика имеет наиважнейшее значение для владельцев ресурсов, которые понимают насколько серьезные потери могут понести активные Интернет-магазины от прорех в безопасности, которыми воспользовались злоумышленники или конкуренты.
Но и это ещё не всё. За окном 21-й век (уже более десяти лет, да), а эти профессионалы не используют режим strict! Зато, активно используют говнокод:
my $fii=0, @FIL=(), $FIS=0, $pat, $file_text="";
Вообще качество кода наводит на мысли о команде школьников. И это коммерческий продукт. Ну да ладно, ССЗБ.
Зацепил ещё такой момент — в качестве БД используются плоские файлы. Оно бы и ладно, но называть директорию с такими файлами «кластером» и писать что:
ни одна другая система была не способна обрабатывать требуемые объемы с требуемым быстродействием, требуемой надежностью и требуемым удобством обслуживания
это черезчур. Посмотрел бы я как всю эту инновацию масштабировать на пару десятков машин.

Мораль же будет такова — доверяй, но проверяй.

PS. Мне в руки попала версия 10. Текущей является версия 11.
Tags:
Hubs:
+39
Comments 60
Comments Comments 60

Articles