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).

Foi útil?

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:

  1. Criptografar todo o código
  2. 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
  3. 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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top