Como eu iria empacotar e vender um aplicativo Django?

votos
36

Atualmente eu estou hospedando um aplicativo Django eu me desenvolvi para meus clientes, mas agora estou começando a olhar para vendê-lo para as pessoas para que possam eles próprios hospedar.

A minha pergunta é esta: Como posso empacotar e vender um aplicativo Django, ao mesmo tempo proteger o seu código de pirataria ou roubo? Distribuindo um monte de arquivos .py não soa como uma boa idéia de como as pessoas que vendem-lo para também poderia apenas fazer cópias deles e passá-las.

Eu acho que para o propósito deste problema seria seguro supor que todos os que compram este seria executando a mesma configuração (LAMP).

Publicado 02/10/2008 em 23:27
fonte usuário
Em outras línguas...                            


7 respostas

votos
53

Não tente ofuscar ou criptografar o código - ele nunca vai funcionar.

Eu sugeriria vender o aplicativo Django "como serviço" - ou hospedá-lo para eles, ou vendê-los o código e suporte . Escreve-se um contrato que os proíbe de redistribuí-la.

Dito isto, se você estava determinado a ofuscar o código de alguma forma - você pode distribuir aplicações Python inteiramente como .pyc (Python compilado byte-code) .. É como py2app funciona.

Ele ainda vai ser re-distribuível, mas ele vai ser muito difícil de editar os arquivos - assim você pode adicionar algumas coisas básicas de licenciamento, e não tê-lo frustrado por alguns #s ..

Como eu disse, eu não acho que você vai ter sucesso no combate à pirataria por meio de criptografia ou ofuscação etc .. Dependendo de seus clientes, um contrato simples, e talvez algumas verificações realmente básicas irá percorrer um longo muito mais do que algum sistema de decodificação complicado (E fazer a experiência de usar o aplicativo melhor , em vez de não esperamos qualquer pior )

Respondeu 03/10/2008 em 00:10
fonte usuário

votos
11

Você pode empacotar a coisa toda como uma máquina Instância Amazon (AMI), e então eles têm que executar o seu aplicativo no Amazon EC2 . A coisa agradável sobre esta solução é que a Amazon vai cuidar de faturamento para você , e uma vez que você está distribuindo a imagem da máquina inteira, você pode estar certo de que todos os seus clientes estão usando a mesma pilha LAMP. A AMI é uma imagem máquina criptografado que está configurado no entanto você quer.

Você pode ter conta Amazon o cliente com uma taxa one-time, taxa baseada no uso, ou taxa mensal.

Naturalmente, esta solução exige que seus clientes hospedar seu aplicativo na Amazon, e pagar as taxas apropriadas.

Respondeu 02/10/2008 em 23:54
fonte usuário

votos
11

A forma como eu iria sobre isso é esta:

  1. Criptografar todo o código
  2. Escrever um instalador que contacta o servidor com o arquivo hostname e licença da máquina e recebe a chave de decodificação, então decifra o código e compila-lo para bytecode python
  3. Adicionar (no instalador) um módulo que verifica arquivo hostname e licença da máquina na importação e morre se não corresponder

Desta forma, o usuário só tem que entrar em contato com o servidor quando as mudanças de nome de host e em primeiro instalar, mas você começa uma pequena camada de segurança. Você poderia mudar o nome do host para algo mais complexo, mas não há realmente nenhuma necessidade - qualquer pessoa que queira piratear isso vai fazê-lo, mas um mecanismo simples como isso irá manter as pessoas honestas.

Respondeu 02/10/2008 em 23:40
fonte usuário

votos
10

"Criptografia" código Python fonte (ou bytecode, ou realmente bytecode para qualquer linguagem que usa-lo - não apenas Python) é como essas pequenas coisas JavaScript Algumas pessoas colocam em páginas da web para tentar desativar o botão direito do mouse, declarando " agora você não pode roubar minhas imagens!"

As soluções alternativas são triviais, e não vai parar uma pessoa determinada.

Se você for realmente sério sobre a venda de um pedaço de software Python, você precisa agir sério. Pagar um advogado para elaborar termos de licença / contrato, têm pessoas concordar com eles no momento da compra, e depois é só deixá-los ter o software real. Isto significa que você vai ter que transportar as pessoas em tribunal, se violar os termos de licença / contrato, mas você tem que fazer isso não importa o que (por exemplo, se alguém quebra o seu "criptografia" e começa a distribuir seu software), e tendo a boa forma real de palavras legais já colocar no papel, com a sua assinatura, será muito melhor para o seu negócio no longo prazo.

Se você for realmente que paranóico sobre as pessoas "roubar" o seu software, embora, ficar com um modelo hospedado e não dar-lhes o acesso ao servidor. A abundância de empresas de sucesso são baseados em torno esse modelo.

Respondeu 15/01/2009 em 08:01
fonte usuário

votos
7

Você nunca vai ser capaz de manter o código-fonte de pessoas que realmente querem. É melhor vir a enfrentar este fato agora, e salvar-se a dor de cabeça mais tarde.

Respondeu 03/10/2008 em 15:48
fonte usuário

votos
3

Posso falar francamente, como um amigo? A menos que seu aplicativo é realmente incrível, você pode não obter muitos compradores. Por que desperdiçar o tempo com advogados, ofuscação, licenciamento e outros enfeites? Você está para ganhar uma melhor reputação,-sourcing aberto seu código ... e mantê-la.

Django vem a partir da extremidade-fonte aberto do espectro de licenciamento (e obfuscating). Concedido, a licença MIT é mais comum do que a GPL; ainda que ambos estão muito longe de qualquer coisa como EULA da Microsoft. Um monte de Djangophiles vai hesitar em código-fonte fechado, simplesmente porque é o que a Microsoft faz.

Além disso, as pessoas vão confiar em seu código mais, uma vez que eles serão capazes de lê-lo e verificar se ele não contém nenhum código malicioso. Lembre-se, "ofuscar" significa "escondido"; e quem realmente sabe exatamente o que você tem escondido?

Concedido, não há nenhuma maneira fácil de rentabilizar o código open-source. Mas você poderia oferecer seus serviços ou mesmo postar uma campanha sobre Pledgie.com, para aqueles que são gratos por todo o seu grande trabalho.

Respondeu 06/05/2011 em 19:40
fonte usuário

votos
3

Uma coisa que você pode querer considerar é o que FogBugz faz. Basta incluir um pequeno binário (talvez um programa C) que é compilado para as plataformas de destino e contém o código para validar a licença.

Desta forma, você pode manter as pessoas honestas com dor de cabeça mínima de sua parte.

Respondeu 28/12/2008 em 05:19
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more