Подтвердить что ты не робот

Как я могу упаковать и продать приложение Django?

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

Мой вопрос таков: как я могу упаковать и продать приложение Django, защищая его код от пиратства или кражи? Распространение кучи файлов .py не похоже на хорошую идею, поскольку люди, которых я продаю, тоже могут просто сделать их копии и передать их.

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

4b9b3361

Ответ 1

Не пытайтесь обфускать или шифровать код - он никогда не будет работать.

Я бы предложил продавать приложение Django "как услугу" - либо разместить его для них, либо продать им код и поддержку. Запишите контракт, который запрещает им перераспределять его.

Тем не менее, если вы решили каким-то образом запутать код, вы можете полностью распространять приложения python как .pyc(скомпилированный байт-код на Python). Это работает Py2App.

Он по-прежнему будет повторно распространяться, но будет очень сложно отредактировать файлы, поэтому вы можете добавить некоторые базовые материалы для лицензирования и не иметь его сдерживать несколькими # s..

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

Ответ 2

То, как я это делал, это:

  • Шифровать весь код
  • Напишите установщик, который связывается с сервером с именем хоста машины и файлом лицензии и получает ключ дешифрования, затем расшифровывает код и компилирует его в байт-код python
  • Добавить (в установщик) модуль, который проверяет имя хоста машины и файл лицензии на импорт и умирает, если он не соответствует

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

Ответ 3

Вы можете упаковать все это как экземпляр машины Amazon Machine (AMI), а затем запустите приложение на Amazon EC2. Самое приятное в этом решении заключается в том, что Amazon будет заботиться о выставлении счетов за вас, а так как вы распространяете весь образ машины, вы можете что все ваши клиенты используют один и тот же стек LAMP. AMI - зашифрованное машинное изображение, которое настроено, но вы хотите его.

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

Конечно, это решение требует, чтобы ваши клиенты размещали свое приложение в Amazon и платили соответствующие сборы.

Ответ 4

"Шифрование" Исходный код Python (или байт-код или действительно байт-код для любого языка, который его использует, а не только Python) похож на те маленькие вещи JavaScript, которые некоторые люди помещают на веб-страницы, чтобы попытаться отключить правую кнопку мыши, объявив "теперь вы не можете украсть мои изображения!"

Обходные пути тривиальны и не остановят определенного человека.

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

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

Ответ 5

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

Ответ 6

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

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

Ответ 7

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

Django происходит от открытого конца спектра от лицензирования (и обфускации). Конечно, лицензия MIT более распространена, чем GPL; все же они оба очень далеки от чего-либо вроде Microsoft EULA. Многие Djangophiles могут отказаться от закрытого исходного кода, просто потому, что это делает Microsoft.

Кроме того, люди будут доверять вашему коду больше, так как они смогут его прочитать и убедиться, что он не содержит вредоносного кода. Помните, что "обфускация" означает "сокрытие"; и кто действительно точно знает, что вы скрыли?

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