Pergunta

Estamos desenvolvendo um aplicativo Java EE apoiado por qualquer banco de dados de escolha do cliente.

Venderemos para os clientes com base no preço da licença do usuário. Como faço para garantir que o aplicativo esteja sendo usado de acordo com nossas condições, ou seja, não facilmente hackeable? Existem tutoriais disponíveis?

Foi útil?

Solução

Resposta de Bill Karwin foi a mais útil das respostas da pergunta mencionada nos comentários. Supondo que você prossiga com um esquema de "proteção", tente fazer o mínimo. Qualquer outra coisa tende a frustrar imensamente os usuários e leva a negócios mais baixos e/ou a um desejo crescente de invadir seu sistema frustrante.

Da sua pergunta, é difícil dizer se cada usuário instalará o aplicativo. Nesse caso, você provavelmente só precisa exigir um código de licença que eles devem entrar em contato com você de alguma forma para obter. Se é uma coisa do cliente-servidor, suas opções são muito mais limitadas; Na verdade, não consigo pensar em uma única solução que já desenhei na minha cabeça ou encontrei na prática que não massivamente frustrante. Você provavelmente também poderia fazer uma solução de código de licença aqui, exceto que o código de licença de alguma forma carregaria uma carga útil que indicava o número de usuários pelos quais pagou e, em seguida, proibiria a criação/uso de usuários excedentes desse número. Nesse ponto, porém, você está realmente andando nessa linha de frustração que mencionei.

Outras dicas

Se você pode ofuscar - este é o caminho para começar. Mas pode ser doloroso se você usar a inversão de estruturas de controle (por exemplo, mola). Ouvi dizer que é possível ofuscar o contexto da primavera também, nunca tentei. Além disso (apenas adivinhando), pode haver algumas surpresas com reflexões, proxies dinâmicos e tal. Quanto ao licenciamento, posso sugerir usar Truelicense. Possui meios muito flexíveis de lidar com vários aspectos de proteção, bem como períodos de teste gratuitos fora da caixa. Funciona muito bem e tem ótima documentação.

Os clientes pagam pelo suporte a este aplicativo? Nesse caso, há uma chance de que o suporte seja um pagamento maior do que o licenciamento do próprio aplicativo. Nesse caso, você pode considerar não Bloqueando o aplicativo, mas optando por fornecer apenas suporte para cópias autênticas do software (cópias não modificadas comprovadas por meio de somas de verificação e tais). Muitas empresas que licenciam esse software estariam mais inclinadas a evitar modificações (mesmo que a chance de que eles queira fazer isso provavelmente seja minúscula) para não comprometer seu apoio.

FYI: É assim que o Oracle tende a operar com sua suíte de e-business. Você pode modificar praticamente qualquer componente que desejar. Boa sorte em obter apoio, no entanto!

Veja como o Atlassian vende seus produtos. Eu acredito que essa é uma abordagem que funciona muito bem, e provavelmente o faria para você também. Nota: Deve haver valor agregado na assinatura das atualizações!

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