Как я могу защитить свой плагин, чтобы его могли использовать только платные пользователи?

Я разрабатываю некоторые плагины (wordpress), и я планирую взимать лицензионную плату с тех, кто хочет их использовать.

Поэтому мне нужен способ убедиться, что этот плагин не загружен на сервер, где любой может загрузить его и использовать бесплатно.

Итак, я подумал об использовании ключа API. Действительный ключ API = пользователь может использовать плагин. Invalid = плагин не работает.

Я просмотрел этот пост PHP API Key Generator, но я не стал намного мудрее тот.

Я также знаю, что поскольку это PHP, любой может войти в код и отключить проверку API (я просто догадываюсь)

Как лучше всего защитить мой плагин? Ключ API? Другими способами? Есть ли у кого-нибудь ссылки на какие-либо хорошие учебники по этой теме?


person Steven    schedule 21.10.2010    source источник


Ответы (5)


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

Основной проблемой здесь является лицензирование вашего плагина. WordPress - это GPL, и в GPL есть пункт, который требует, чтобы «производные работы» также лицензировались по GPL. (Это преуменьшение: на самом деле вся GPL основана на этом пункте и не будет работать без него.)
Существует много споров о том, можно ли рассматривать плагин как «производную работу». . На мой взгляд, это не так, и я считаю неэтичным пытаться заставить его восприниматься как единое целое. Однако Automattic, основные разработчики WordPress и Free Software Foundation (организация, написавшая GPL) утверждают, что плагины WordPress по закону обязаны использовать GPL и не могут использовать другую лицензию.
До сих пор не было никакого суда. случаев, и поэтому прецедента нет, но существует значительная враждебность вокруг пары основных плагинов WordPress, которые не используют GPL, и Automattic в основном пригрозил судебным иском, в то время как разработчик плагина сказал, пожалуйста, подайте на меня в суд. Не совсем удачная ситуация, и я бы сказал, что независимо от морали ситуации, факт заключается в том, что негативная огласка обычно перевешивает преимущества использования плагина с закрытым исходным кодом.

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

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

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

Как бы то ни было, если вы пытаетесь усложнить жизнь кому-то, кто решает распространять ваш плагин, вы можете подумать о следующем:

  • вы по-прежнему можете требовать права на товарный знак на имя вашего плагина, даже если сам плагин имеет открытый исходный код, поэтому вы можете юридически запретить им использовать то же имя, которое знают ваши клиенты
  • только код PHP в плагине должен быть под лицензией GPL - вы можете распространять любые файлы, которые не содержат PHP, который взаимодействует с WordPress, по отдельной лицензии, чтобы запретить распространение. Например, CSS, JavaScript и изображения не должны подпадать под GPL.
person Caesar    schedule 22.10.2010
comment
Да, он будет взаимодействовать с моим сервером. Так что API-ключ выглядит правильным. Хм ... Не думаю, что мне нравится политика Automattic в отношении плагинов. Итак, я могу взять плагин Akismet, внести в него некоторые изменения и вуаля - у меня есть собственный плагин Akismet, за использование которого я могу взимать плату с клиентов. Может, мне стоит сделать именно это и посмотреть, как Autmattic любит свое собственное лекарство. - person Steven; 22.10.2010
comment
PS. У вас есть ссылки на руководства / учебные пособия по реализации ключей API? - person Steven; 22.10.2010
comment
Совершенно верно; поскольку плагин Akismet находится под лицензией GPL, вы имеете право распространять его как есть, так и в измененной форме. Я не думаю, что Automattic будет возражать против этого, поскольку вся их бизнес-модель построена на коде под GPL. (Я одобряю это, но я думаю, что для них неэтично пытаться заставить авторов плагинов использовать GPL только потому, что их код вызывает функции WordPress.) Но обратите внимание, что плагин Akismet полностью полагается на взаимодействие с серверами Automattic, поэтому вы Придется заменить и эту услугу - это самая сложная часть! - person Caesar; 22.10.2010
comment
Нет, я не знаю никаких руководств по реализации ключей API. С плагином было бы легко; серверная часть будет во многом зависеть от того, какое еще взаимодействие с вашим сервером было задействовано. - person Caesar; 22.10.2010
comment
К вашему сведению, на сайте WordPress.org указано (wordpress.org/about/license), что There is some legal grey area regarding what is considered a derivative work, but we feel strongly that plugins and themes are derivative work and thus inherit the GPL license. If you disagree, you might want to consider a non-GPL platform such as Serendipity (BSD license) or Habari (Apache license) instead. - person Caesar; 27.10.2010
comment
Изучая это в течение нескольких дней, я больше ни в чем не уверен и больше во всем запутался. WordPress - это GPL, ВСЕ, что есть для WP, - это производная работа? Это не имеет смысла (для меня). Одно без другого ничего не делает, одно без другого не работает. У каждого свой IP. Но в любом случае, если нельзя продать PHP, то как же Automattic уйти от своих лицензий / подписок на WooCommerce? Вы платите не просто за обновления, вы платите за программное обеспечение. Вы не можете скачать его, не заплатив за это. Все их видео рассказывают о ПОКУПКЕ программного обеспечения. - person Madivad; 04.09.2017

Здесь можно найти отличную статью, хотя она не касается техники, просто нужно помнить о том, что нужно иметь в виду, прежде чем вы продолжите свой путь http://www.littlehart.net/atthekeyboard/2007/07/20/protection-your-php-code/

Хотя для более прямого ответа на ваш вопрос используйте систему ключей API, а затем закодируйте свой PHP, используя что-то вроде Zend Guard, чтобы пользователь не мог просто войти и удалить проверку ключа API во время кодирования кода.

person neopickaze    schedule 21.10.2010
comment
Спасибо, проверю! :) - person Steven; 21.10.2010

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

Использование таких продуктов, как Zend Guard, не вариант. Конечный пользователь должен установить Zend Optimizer в своей системе, и вы не можете этого гарантировать.

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

person mellowsoon    schedule 21.10.2010
comment
Соглашаться! Я бы добавил в свои комментарии что-то вроде: Если вы обойдете вызов API, знайте, что вы действуете неэтично, не позволяя мне получить компенсацию за работу, от которой вы собираетесь извлечь выгоду, и не позволяя мне поддерживать себя в моих трудах. Если вы думаете, что это слишком дорого, свяжитесь со мной, я уверен, что мы сможем что-то придумать. - person jackreichert; 03.07.2015

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

пока люди должны загрузить ваш код, кто-то возьмется за него и обнулит его, вы можете предложить бесплатную версию, такую ​​как s2member и AllinOneSEO pack.

person user961435    schedule 22.10.2010

Я действительно думаю об этом. Но это GPL, и мы не можем скрыть наши коды. Думаю, нам нужно сделать более сложную для чтения систему ключей api. Думаю сделать это. Но есть способ взломать это с помощью remove if else system, к сожалению, если это открытый исходный код. Вы можете посмотреть, например, следующее: PHP AES encrypt / decrypt

person marlonjd    schedule 15.02.2017