Вопрос

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

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

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

Это было полезно?

Решение

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

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

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

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

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

Другие советы

Я бы поступил так:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top