Содержание
Краткий обзор качества коммерческой CMS на Perl / Хабр
parserpro
Perl *
Из песочницы
В процессе занятия фрилансом мне периодически попадаются на препарирование сайты написанные на 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 | [email protected] | 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.
Теги:
- Perl
- CMS
- говнокод
- деньги
- коммерция
Хабы:
- Perl
Всего голосов 53: ↑46 и ↓7 +39
Просмотры
4. 8K
Комментарии
60
Алексей
@parserpro
Пользователь
Комментарии
Комментарии 60
Perl CMS : гигантомания или слишком умные?
Решил на досуге посмотреть какие-нибудь интересные open source CMS на perl.. посмотрел и очень удивился почти полным отсутствием таковых, тогда как на PHP они плодятся пачкам и каждый день. Похоже Movable Type — это самое достойное из движков расчитанных на небольшие/средние сайты (он же и под mod_perl работает если нужно), но он и не совсем уж и бесплатный (ограниченная лицензия). Ну а из прочих все какие-то мастодонты встречаются, которые позиционируют себя как «content management system and an application framework 2 in 1»:
— WebGUI http://www.plainblack.com/spreadwebgui
довольно много к нему аддон-ов ,плагинов. Расчитан на работу под mod_perl. Но мне что-то он не очень понравился по архитектуре, хотя лишь слегка покопался в его внутренностях.
— Bricolage http://www.bricolage.cc/ модная тема в последнее время в perl сообществе.. Что-то его активно продвигают, хотя вещь в себе, которую еще делать и делать. «CMS корпоративного уровня».. угу. Этот проект принимает участие в гуглевском Summer of Code..и судя по тому, что к нему еще нужно привинтить, так он «under constraction» ( подробнее тут ) (а ниже я про него еще одну забавную штуку напишу).Использует шаблонизаторы: Mason, Template Toolkit, или HTML::Template.
Статья на Perl.com: Content Management with Bricolage
— Krang http://krang.sourceforge.net/ то, что как говорят авторы «выросло» из неудобоваримости Bricolage. В состав разработчиков входят весьма уважаемые перлисты (среди них Sam Tregar — автор HTML::Template, Class-XPath-1.4, XML::Validator::Schema и т.д.,Jesse Erlbaum автор замечательного модуля CGI::Application). Тоже «немаленький» проектик с минималистичным интерфейсом, но довольно прикольной архитектурой. Тоже заточен под mod_perl, есть rpm пакеты для удобства установки). Меня повеселили данные, сравнивающие Krang и Bricolage (по воз-тям и производительности), «вот самая суть»:
The following table compares a few common operations on Bricolage and Krang system with approximately 7,000 stories, running on identical machines (Redhat Linux 7.3, dual P4-2Ghz, 4GB of ram, with their databases tuned appropriately).
Operation | Krangv1.011 | Bricolagev1.4.6 |
Single Story Publish | 0.33 seconds | 4 seconds |
Total Site Publish | 38 minutes | 6.5 hours |
Story Find by Title | 0.15 seconds | 2 seconds |
7000 статей + они делают вывод в XML+ много авторов и категорий, но 6,5 часов для всего это дела ИМХО как-то не але (и все это под mod_perl)
Кстати, если интересно, тут можно увидеть произ-ть Kranga при различной нагрузке. Шаблонизатор HTML::Template. . не знаю, мне кажется что для подобного проекта учитывая его ООП было бы интересно использовать что-то «понавороченее», типа Template-Toolkit.
К чему я все это? Возможно я плохо искал, но что-то ничего толкового, «земного» не нашел. Стоит ли пытаться соединить CMS и Framework в одном? Получается кастрированный и ограниченный Framework и «перекаченный» и намудренный, CMS.
О Framework.. Недавно прочитал статью о Catalyst ( http://www.perl.com/pub/a/2005/06/02/catalyst.html ) пример в статье ИМХО несколько бестолковый, но сама эта штука меня заинтересовала, весьма приятно смотрится внутри 🙂
MVC:
Model: Class::DBI, Plucene, Net::LDAP (ну вот не очень мне нравится Class::DBI — c виду и поначалу хорош, но там многое надо довинчивать + тормоза при больших выборках.)
View: Template Toolkit, Mason, HTML::Template
Controller: свои каталистические замутки.
Сайт проекта: http://catalyst.perl.org/ с документацией пока не але (про примеры молчу), но может разродятся, он сейчас весьма активно развивается. Да… Maypole загнулся, OpenInteract в свободном плавании (ранее разработка спонсировалась), печальна жизнь open sourca ,если нет рядом заинтересованного спонсора, на энтузиазме далеко и надолго не уедешь ..
P.S. во я накатал!
Perl — Какая CMS?
Ошибка управления
Язык программирования Perl на Perl.org. Ссылки и другие полезные ресурсы для начинающих и опытных программистов на Perl.
Язык программирования
Perl.org
12,236
Веб -сайты
0,19%
TOP 1M Доля рынка
COMPARE
GET СПИСОК
COMPARE
GET СПИСОК
COMPARE
GET СПИСЕМИ
. Доля рынка
Рыночная доля Perl уменьшилась на 0,033 процентных пункта (с 0,097% до 0,064%) для всех сайтов, больше, чем в любом другом сегменте за тот же период времени.
Версии PERL
Основные версии
- V5 (100,0%)
- Неизвестно (0,001%)
Минор. v5.32 (0,886%)
9004 (0,243%)
Домены верхнего уровня
Веб-сайты, использующие Perl, были найдены на 170 доменах верхнего уровня
- 8 Коммерческий (.0com) (.000428) %)
- Австрия (.at) (8,809%)
- Организация (.org) (6,058%)
- Германия (.de) (5,452%)
- Россия (.ru) (5,082%)
- Австралия (.au) (4,602%)
- Сеть (.net) (3,643%)
- Великобритания (. uk) (3,037%)
- Чили (. cl) (2,819%)
- Финляндия (.fi) (2,558%)
- Италия (.it) (1,885%)
- Япония (.jp) (1,742%)
- Дания (.dk) (1,262%)
- Франция (.fr) (1,22%)
- Испания (.es) (1,077%)
- Индия (.in) (1,001%)
- Румыния (.ro) (0,984%)
- Швейцария (.ch ) (0,867%)
- Индонезия (.id) (0,825%)
- Польша (.pl) (0,816%)
- Канада (.ca) (0,791%)
- Европейский Союз (.eu) (0,757%)
- Образование (. edu) (0,749%)
- Нидерланды (.nl) (0,732%)
- Тайвань (Китайская Республика) (.tw) (0,648%)
- Бразилия (.br) (0,614%)
- Колумбия (.co ) (0,597%)
- Венгрия (.hu) (0,538%)
- Бельгия (.be) (0,53%)
- Чехия (.cz) (0,522%)
- Мексика (.mx) (0,522%)
- Гонконг (.hk) (0,505%)
- Китай (.cn) (0,496%)
- Информация (.info) (0,48%)
- Украина (.ua) (0,471%)
- Новая Зеландия ( .nz) (0,429%)
- Швеция (. se) (0,387%)
- Португалия (.pt) (0,337%)
- Норвегия (.no) (0,337%)
- Аргентина (.ar) (0,32% )
- Вьетнам (.vn) (0,311%)
- Россия (кириллица) (.рф) (0,311%)
- Биз (.biz) (0,278%)
- Малайзия (.my) (0,261%)
- Греция (.gr) (0,244%)
- Соединенные Штаты Америки (.us) (0,244%)
- Южная Корея (Республика Корея) (.kr) (0,244%)
- Южная Африка (.za) (0,227%)
- Кошка (.cat ) (0.202%)
- Peru (.pe) (0.202%)
- 120 Others (4.897%)
Related Technologies
Complementary Technologies
Technologies | Category | Websites | Compare |
---|---|---|---|
Апач | Веб-сервер | 11 310 | Perl против Apache |
PHP | Язык программирования | 8 677 | Perl и PHP |
ЮНИКС | Операционная система | 3 452 | Сравнение Perl и UNIX |
ЦенОС | Операционная система | 2 936 | Perl против CentOS |
MySQL | База данных | 2 467 | Сравнение Perl и MySQL |
WordPress | Блог / CMS | 2 331 | Perl против WordPress |
Дебиан | Операционная система | 2 059 | Perl против Debian |
Питон | Язык программирования | 1 696 | Perl против Python |
Нгинкс | Веб-сервер | 1 589 | Perl против Nginx |
CDN jQuery | CDN | 1 254 | Perl и jQuery CDN |
Убунту | Операционная система | 1 122 | Perl против Ubuntu |
Зависимости
Perl зависит от 0 технологий
Зависимых
12 технологий зависит от Perl0003
Popular Sites Using Perl
We detected the following sites were using Perl
qwest.
net
uci.edu
perl.org
pbase.com
cygwin.com
uni-heidelberg.de
Платформа CMS для создания веб-сайтов Perl
LunpaCMS — платформа CMS для создания веб-сайтов на Perl.
LunpaCMS, ранее известная как PerlCMS, представляет собой платформу системы управления контентом для создания веб-сайтов на языке Perl.
Издается и поддерживается корпорацией Peregrine Computer Consultants.
Это бесплатное программное обеспечение, опубликованное в соответствии с лицензией Apache версии 2.0, доступной по адресу http://www.apache.org/licenses/LICENSE-2.0.txt.
LunpaCMS преследует следующие цели:
- Предоставить возможность нескольким пользователям с разной степенью квалификации и опыта обновлять, поддерживать и администрировать веб-сайт.
- Чтобы позволить веб-мастеру или дизайнеру настроить первоначальный макет и стили, что, в свою очередь, позволяет поддерживать сайт в течение длительного времени и улучшать его с упором на согласованность.
- Чтобы облегчить удаление содержимого из дизайна способом, аналогичным и совместимым с CSS, но с меньшим акцентом на контроль качества и тестирование кросс-браузерной поддержки.
- Для упрощения создания веб-форм с проверкой ошибок и «повторным отображением» без повторного ввода каждого поля дважды.
- Удалить всех привратников и разрешить всем классам пользователей редактировать сайт одновременно с минимальными ограничениями.
- Требуется только одна центральная копия системы управления контентом и модулей на сервер для простоты обслуживания и добавления функций.
- Чтобы даже начинающий пользователь мог обновлять содержимое веб-сайтов.
LunpaCMS имеет следующие классы пользователей:
- Content Manager — пользователь, который обычно плохо знаком с Интернетом или не имеет реальных знаний HTML.
- Веб-мастер — ветеран сети, умеющий работать с HTML.
- Старший веб-мастер — опытный веб-программист, который работает с HTML и версткой и использует комбинацию доступа к командной оболочке и веб-доступа для изменения сайта.
- Программист Perl — программист уровня от эксперта до гуру, который может улучшать и расширять сайт с помощью Perl.
- Введение в LunpaCMS
- Преимущества LunpaCMS
- Установка
- Безопасность
- Как написать нового менеджера
- Анонимный почтовый менеджер
- Рекламный менеджер
- Менеджер цвета
- Менеджер комментариев
- Менеджер контактов
- Менеджер по персоналу
- Менеджер событий
- Список файлов
- Галерея
- Гостевая книга
- Менеджер репозитория изображений
- Менеджер предметов
- Менеджер KofC
- Диспетчер карт
- Менеджер по работе с клиентами
- Менеджер новостей
- Менеджер по рассылке новостей
- Менеджер по заказам
- Менеджер PayPal
- Менеджер фотографий
- Менеджер по регистрации
- Менеджер по доставке
- Корзина для покупок
- Диспетчер инструментов сайта
- Менеджер магазина
- Диспетчер шаблонов
- Средство создания эскизов
- Менеджер по продаже билетов
- Менеджер загрузки
- Диспетчер пользователей
- Авто Мета
- Автоматический размер экрана
- КСС
- Библиотека gfx
- FastCGI
- Поиск по сайту
- Почтовая этикетка
- Сценарии оболочки LunpaCMS
- Миграция WordPress
- Настройка административного меню
Щелкните ссылки на эти страницы или найдите их имена в диспетчере шаблонов, чтобы просмотреть теги LunpaCMS, которые они демонстрируют.
- Перенос сайта LunpaCMS на новое имя
- Twitterfeed — это служба, которая автоматически публикует ваши статьи RSS-канала на сайтах социальных сетей.