it-swarm.xyz

Безопасный платный плагин WordPress

Я хочу создать плагин для WordPress, но также хочу, чтобы плагин можно было использовать только после его активации с помощью серийного ключа, который должен быть уникальным для каждого домена.

Каков наилучший способ сделать это, предполагая:

  1. Я должен предоставить действительный исходный код пользователям и не могу иметь тип безопасности VideoPress - который является просто оболочкой JavaScript для фактического контента, который поступает с сервера плагина.
  2. Я хочу убедиться, что начинающий среднестатистический PHP разработчик не сможет легко обойти защиту.
5
Adhip Gupta

Вариант 1. Обработка некоторых данных в вашей системе.

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

Вариант 2 - Шифровать сохраненные данные и требовать размещенный ключ расшифровки

Другой альтернативой является базовая настройка шифрования - на самом деле это система, с которой я давно играю, я просто пока не удосужился ее развернуть. Сам код (чтобы остаться верным GPL) является открытым текстом, как и следовало ожидать. Однако все сохраненные данные (значения по умолчанию, настройки плагина и т.д.) Шифруются перед сохранением в базе данных. Хитрость заключается в том, что плагин в удаленной системе не имеет ключа дешифрования - для дешифрования данных он должен отправить свой ключ API в вашу систему, который затем отвечает ключом дешифрования. Затем он может храниться во временном режиме (временном параметре) в течение определенного периода времени, прежде чем будет сброшен - таким образом, у вас не будет попадания сайта на ваш сервер каждые 2 секунды во время интенсивного трафика.

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

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

Вариант 3 - ограничить возможности "бесплатной" версии

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

Недостатком здесь является то, что после загрузки весь код теперь находится на сайте пользователя, и под лицензией GPL он все еще может распространять полный пакет. Преимущество состоит в том, что это зависит только от вашей системы один раз и не требует какой-либо долгосрочной поддержки загрузки/обработки.


В любом случае, если вы решите двигаться вперед, вы либо столкнетесь с необходимостью поддерживать какой-либо внешний API на своем сервере, либо предоставите полный исходный код системы своим пользователям. Если вы сохраняете некоторые функции в своей системе, вы почти должны гарантировать 100% работоспособности, чтобы это того стоило. Если вы собираетесь предоставить полный исходный код, под GPL нет способа помешать кому-либо другому распространять вашу систему.

4
EAMann

Вы не можете скрыть исходный код от пользователей WordPress, и при этом вам не разрешено ограничивать распространение вашего плагина из-за последствий для лицензирования.

Вы создаете производную WordPress с помощью своего плагина, и ваши пользователи имеют право получить его источник и свободно распространять его (см. четыре свободы в свободном программном обеспечении ).

Предполагая, что WordPress лицензирован по GPLv2, и у вас есть неамериканские клиенты, вы должны иметь дело с последствиями нарушения GPL, которое вы можете иметь в своем ("защищенном") продукте.

Вы пытаетесь внедрить блокировку поставщика для своих пользователей.

3
hakre

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

2
John P Bloch