Ну. Хотелось бы сразу заметить насчет демок (и не только) - в настройках демок прямо в свойствах можно взять пароль к MySQL. Если владелец каталога хочет сменить пароль пользователя базы данных - ему не обязательно видеть исходный в настройках. А вот в случае проникновения кого-либо в админку - мы светим доступ к БД. В данный момент достаточно открыть исходный код страницы и посмотреть что в поле "Пароль БД" (или как оно там называется). Что легко проделать на демосайте. Поэтому-то я и мог бы установить движок на демосайте, если бы не права на конфиги :S.
Еще один момент, насчет него не уверен - инклюд php файлов и самого php кода с помощью тегов смарти {php}, {include_php}. Я не знаю заблокирована ли эта возможность в каталоге по умолчанию или нет. Если не заблокирована - желательно бы вынести это в настройку в отдельный файл, который нельзя редактировать через админку, и запретить эти функции по умолчанию. Думаю, мало кто будет ей пользоваться, но полностью лишать такой возможности не стоит. В случае, опять-таки, проникновения в админскую часть можно сильно навредить. Даже если сам код каталога безопасен в плане уязвимостей - используемые возможности smarty могут свести безопасность на нет. Вставляю в шаблон код какого-нибудь php-шелла - и привет. В демосайте возможность редактирования шаблона, я так понимаю, отключена чтобы не портили сайт, думаю, влияние smarty-тегов врядли учитывалось. Если бы редактирование было включено и теги {php}, {include_php} работают - сайт бы уже стопяцот раз дефейснули.
Насчет раззендить и вырезать участки кода. Я похоже не слишком корректно сформулировал предложение. Простенький скрипт, без всякой защиты зендом, может стучаться к серверу и сообщать свои лицензионные данные. Далее уже дело сервера. Лицензия на домен? Проверяем наличие такой лицензии в базе, проверяем, что IP, с которого осуществляется подключение, соответствует указанному в лицензии домену. Лицензия на e-mail? Да бога ради. В обоих случаях генерируется ссылка на архив с файлами, нужными для обновления с версии Х до версии Y. В первом случае она может передаваться скрипту и он сам будет выкачивать обновление/оставлять ссылку на скачивание где-нибудь в админке, чтобы админ мог сам скачать. Во втором случае - мы отсылаем ссылку на скачивание на e-mail лицензиата. На стороне сервера - 1 запрос к базе данных для выборки лицензии и несколько несложных процедур для генерации ссылки на нужный архив.
Какой мы получаем плюс? Во-первых - удобство для лицензионных пользователей (а ведь на них, я думаю, и ориентируется проект). Они могут настроить автоматическое обновление или просто быть в курсе выпускаемых обновлений не заходя на сайт. Обновления не обязательно должны применяться автоматически, могут просто выкачиваться или оставляться ссылка на архив. Чтобы не испортить изменения в движке, сделанные пользователями.
Это просто пример. Вообще, все крупные софтверные компании поняли, что нормальный доход может приносить только концепция SaaS - Software as a Service, в остальных случаях все можно крякнуть либо найти серийники. В случае с SaaS фирма продает не программное обеспечение - она продает дополнительные сервисы и примочки, связанные с продуктом. Хочешь заработать - продавай сервисы. У тебя есть скрипт каталога. Ограничь доступ к обновлениям как предложено выше. Выкладывай на паблик физически урезанные версии (в которых может не хватать определенных файлов или выложенные файлы будут с урезанным функционалом, притом не программно - вначале функции пишем return, а физически - код переписан под меньший функционал). Полностью проблему нуллей это, конечно, не решит, но существенно сократит. Все обновления - только после проверки лицензии. Разработай ряд сервисов и продвигай их. Не просто делай шабы для каталога, а какую-нибудь оригинальную услугу. К сожалению, на ум ничего не приходит.
Еще одно. Понять _зачем_ клиенты покупают/скачивают продукт. Явно не для души. Основная часть - это баннерообмен и прочие коммерческие или, как минимум, меркантильные мотивы. Нужно и это учитывать. Я не знаю. Ну.. продавай базы каталогов с ссылками, чтобы можно было сразу поднимать "полуготовый" каталог. Или реализуй программную возможность подобной торговли базами между пользователями. Главное - реализовывать _сервисы_, которые являются полностью подконторльными владельцу продукта и дают дополнительные бонусы относительно альтернативных продуктов, удерживая и стимулируя лицензиатов пользоваться именно твоим скриптом.
Варианты высказал наобум, если честно. Часть идей больше подходит к почти полностью завершенному продукту с достаточной аудиторией. Что реально можно придумать - это уже не мне решать, тут ты лучше разбираешься.
Я как бы понимаю, что не все с одобрением отнесутся к моим предложениям
. Но ведь и вы хотите, чтобы продукт развивался и становился более качественным, а для этого нужны деньги и перспективы развития. А нужная нулленная версия в любом случае появится на проекте подобного рода, так что никто ничего не теряет (;