Como eu empacotaria e venderia um aplicativo Django?
-
03-07-2019 - |
Pergunta
Atualmente, estou hospedando um aplicativo de Django que me desenvolvi para meus clientes, mas agora estou começando a vendê -lo para as pessoas para que eles se hospedassem.
Minha pergunta é a seguinte: como posso empacotar e vender um aplicativo Django, enquanto protege seu código contra piratórios ou roubo? A distribuição de um monte de arquivos .py não soa como uma boa ideia, pois as pessoas que eu o vendo também poderiam fazer cópias deles e transmiti -las.
Eu acho que, com o objetivo desse problema, seria seguro assumir que todos que compram isso estariam executando a mesma configuração (lâmpada).
Solução
Não tente ofuscar ou criptografar o código - ele nunca funcionará.
Eu sugeriria vender o aplicativo django "como um serviço" - o hospedar para eles ou vender o código e suporte. Escreva um contrato que os proíba de redistribuí -lo.
Dito isto, se você estivesse determinado a ofuscar o código de alguma forma - poderá distribuir os aplicativos Python inteiramente como .pyc (código de byte compilado Python) .. é como o PY2App funciona.
Ainda será re-distribuível, mas Será muito difícil editar os arquivos - para que você possa adicionar algumas coisas básicas de licenciamento e não tê -lo frustrado por alguns #
s ..
Como eu disse, acho que você não terá sucesso na anti-pirataria por criptografia ou ofuscação etc. Dependendo de seus clientes, um contrato simples e talvez algumas verificações realmente básicas vão muito mais longe do que algum sistema de descriptografia complicado (E faça a experiência de usar seu aplicativo Melhor, ao invés de Espero que não seja pior)
Outras dicas
Do jeito que eu continuo é isso:
- Criptografar todo o código
- Escreva um instalador que entre em contato com o servidor com o nome do host da máquina e o arquivo de licença e obtém a chave de descriptografia, depois descriptograça o código e o compila com o python bytecode
- Adicione (no instalador) Um módulo que verifica o nome do host da máquina e o arquivo de licença na importação e morre se não corresponder
Dessa forma, o usuário só precisa entrar em contato com o servidor quando o nome do host mudar e na primeira instalação, mas você obtém uma pequena camada de segurança. Você pode mudar o nome do host para algo mais complexo, mas realmente não há necessidade - alguém que deseja piratear isso o fará, mas um mecanismo simples como esse manterá as pessoas honestas honestas.
Você pode empacotar tudo como uma instância da Amazon Machine (AMI) e depois que eles executem seu aplicativo em Amazon EC2. O bom sobre esta solução é que a Amazon vai Cuide do faturamento para você, e, como você está distribuindo a imagem inteira da máquina, pode ter certeza de que todos os seus clientes estão usando a mesma pilha de lâmpadas. O AMI é uma imagem da máquina criptografada que está configurada como você quiser.
Você pode ter uma fatura da Amazon o cliente com uma taxa única, taxa baseada em uso ou taxa mensal.
Obviamente, esta solução exige que seus clientes hospedem o aplicativo na Amazon e paguem as taxas apropriadas.
"Criptografar" o código-fonte do python (ou bytecode, ou realmente bytecode para qualquer idioma que o use-não apenas o python) é como aquelas pequenas coisas de javascript que algumas pessoas colocam nas páginas da web para tentar desativar o botão do mouse direito, declarando " Agora você não pode roubar minhas imagens! "
As soluções alternativas são triviais e não impedem uma pessoa determinada.
Se você é realmente sério sobre a venda de um software Python, precisa agir sério. Pague um advogado para elaborar termos de licença/contrato, peça às pessoas que concordem com eles no momento da compra e, em seguida, deixe -as ter o software real. Isso significa que você terá que transportar as pessoas para o tribunal se elas violarem os termos da licença/contrato, mas você terá que fazer isso, não importa o quê (por exemplo, se alguém quebrar sua "criptografia" e começar a distribuir seu software), e ter ter A forma correta real de palavras legais já estabelecidas no papel, com sua assinatura, será muito melhor para o seu negócio a longo prazo.
Se você é realmente este Paranóico sobre as pessoas "roubar" seu software, apenas fique com um modelo hospedado e não dê -lhes acesso ao servidor. Muitas empresas de sucesso são baseadas nesse modelo.
Você nunca poderá manter o código -fonte de pessoas que realmente o desejam. É melhor entender esse fato agora e salvar a dor de cabeça mais tarde.
Posso falar francamente, como amigo? A menos que seu aplicativo seja realmente incrível, você pode não receber muitos compradores. Por que perder tempo com advogados, ofuscação, licenciamento e outros enfeites? Você deve ganhar uma melhor reputação, de origem aberta do seu código ... e mantendo-o.
O Django vem da extremidade de código aberto do espectro da licenciamento (e ofusca). É verdade que a licença do MIT é mais comum que a GPL; Ainda assim, ambos estão muito distantes de qualquer coisa como o Eula da Microsoft. Muitos djangófilos se recusam ao código de fonte fechada, simplesmente porque é isso que a Microsoft faz.
Além disso, as pessoas confiarão mais no seu código, pois poderão lê -lo e verificar se ele não contém código malicioso. Lembre -se de "ofuscar" significa "esconder -se"; E quem realmente saberá exatamente o que você escondeu?
É verdade que não há maneira fácil de monetizar o código de código aberto. Mas você pode oferecer seus serviços ou até mesmo publicar uma campanha no Pledgie.com, para aqueles que agradecem por todo o seu excelente trabalho.
Uma coisa que você pode querer considerar é o que Fogbugz faz. Basta incluir um pequeno binário (talvez um programa C) compilado para as plataformas de destino e contém o código para validar a licença.
Dessa forma, você pode manter as pessoas honestas honestas com o mínimo de dor de cabeça da sua parte.