Как я могу защитить свой плагин, чтобы его могли использовать только платящие пользователи? - PullRequest
15 голосов
/ 21 октября 2010

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

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

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

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

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

Ответы [ 5 ]

15 голосов
/ 22 октября 2010

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

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

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

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

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

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

5 голосов
/ 21 октября 2010

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

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

4 голосов
/ 22 октября 2010

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

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

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

0 голосов
/ 16 февраля 2017

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

0 голосов
/ 23 октября 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...