Безопасный метод для премиум php cms - PullRequest
0 голосов
/ 12 июля 2011

Хорошо, я нахожусь в процессе создания cms. Будет бесплатная версия и премиум-версия. Очевидно, что премиум-версия будет иметь модули и такие, которых нет в бесплатной версии. У кого-нибудь есть идеи о том, как я могу предотвратить распространение моей премиум-версии в Интернете? Я изучал использование лицензионного ключа с проверкой удаленного сервера, а также шифрование и кодирование премиальных сценариев. Я не хочу использовать Zend Guard или Ioncube, потому что я не хочу, чтобы пользователи устанавливали это программное обеспечение только для использования CMS. Я также хочу, чтобы cms был настраиваемым, что исключает кодирование. У кого-нибудь есть идеи, чтобы предотвратить обнуление сценариев? Если возможно возможно просто закодировать одну страницу, которая выполняет удаленную проверку ... просто что-то ... Это не должно быть пуленепробиваемой вещью ... но что-то, что мешает начинающим взломщикам обнулить ее и выпустить ее

1 Ответ

0 голосов
/ 12 июля 2011

СТРАНИЦЫ КОДИРОВАНИЯ: Лично я попробовал несколько методов, чтобы избежать PHP-кодировщиков, но ничего не было действительно эффективно в коммерческой среде.

Однако, исходя из своего опыта, я бы не стал так сильно беспокоиться о том, что Ioncube и Zend не будут установлены на серверах, потому что большинство управляемых сред, скорее всего, уже имеют и то и другое, это то, что я нашел в любом случае. Из-за этого пользователи не должны устанавливать его для одного приложения.

Говоря, что это также зависит от вашего целевого рынка, если вы идете лицом к лицу с такими, как Joomla! или WordPress, например, тогда ваш целевой рынок обычно использует управляемую среду, так что нет большой проблемы. Однако, если вы хотите сказать, что на рынке интрасети это может быть незначительной проблемой, но любой администратор сервера, который стоит немного соли, сможет легко установить это без суеты, он также поймет, почему вы это сделали. Обратите внимание, что рынок интрасети немного сложнее, так как вам нужно будет указать настройки порта для проверки лицензии в модуле лицензирования.

ПОБОЧНОЕ ПРИМЕЧАНИЕ. Поскольку ваш продукт будет распространяться с доступным исходным кодом, вам нужно быть осторожным и обращать внимание на свою интеллектуальную собственность (IP), как правило, это означает, что на каждой странице, которая может быть читабельна, есть правовая оговорка. Кроме того, не забывайте соблюдать требования других сценариев владельцев IP, которые вы можете использовать в своем проекте.

ЛИЦЕНЗИРОВАНИЕ И КОДИРОВАНИЕ (ПРЕДЛОЖЕНИЕ): Кодирование одной страницы с функциями лицензирования - это один из способов решения этой проблемы, но вам будет довольно легко обойти это, если остальная часть исходного кода будет доступна.

То, на что я смотрю, - это кодирование одной страницы с функциями лицензирования, а также кодирование проверки вашего логина, половина ваших проверок подлинности для каждой защищенной страницы и некоторые основные функции для публикации в базе данных. Таким образом, если они попытаются удалить вашу зашифрованную страницу с помощью сценария лицензирования, логин или обновление контента не будет выполнено - плюс они будут выгнаны из системы, поскольку будет действительна только половина проверки сеанса - я скрываю функцию уничтожения, вложенную в другая функция, которая требуется для работы каждой страницы, это может быть меню (это здорово, потому что вы можете скрыть функцию с выходом из системы), она просто выглядит как часть функции выхода из системы, но на самом деле это функция уничтожить сеанс, если не все переменные присутствуют.

При выборе значений для ваших проверок подлинности на каждой защищенной странице (эту функцию следует кодировать), попробуйте использовать то, что выглядит как случайная переменная, и неописательные имена затем кодируют переменную (мне для этого нравятся хеши MD5). Это еще один способ повысить безопасность при «взломе» вашего скрипта.

Я надеюсь, что это может помочь вам, и извините, что не могу порекомендовать лучшее решение.

...