2009-04-29 3 views
7

Stiamo sviluppando un'applicazione Java EE supportata da qualsiasi database di scelta del cliente.Come creare un'applicazione Java EE con licenza sicura?

Venderemo ai clienti in base al prezzo di licenza per utente. Come posso assicurarmi che l'applicazione venga utilizzata secondo le nostre condizioni, ovvero non facilmente hackerabile? Sono disponibili tutorial?

+2

Vedere http://stackoverflow.com/questions/475216/python-applications-can-you-secure-your-code-somehow. Linguaggio diverso, ma lo stesso approccio fuorviato. –

+1

Ho letto le risposte per quella domanda ma non è quello che voglio. So che ogni cosa è hackerabile, ma almeno cerchiamo di renderla difficile. –

+0

Questa richiesta è in arrivo dalla direzione? –

risposta

5

Bill Karwin's answer è stata la più utile delle risposte dalla domanda menzionata nei commenti. Supponendo che andrai avanti con uno schema di "protezione", cerca di fare il minimo indispensabile. Qualcos'altro tende a frustrare immensamente gli utenti e porta a ridurre la ripetizione degli affari e/o un maggiore desiderio di hackerare il sistema frustrante.

Dalla tua domanda, è difficile dire se ciascun utente installerà l'applicazione. Se è così, probabilmente devi solo richiedere un codice di licenza che ti contattino in qualche modo per ottenere. Se è una cosa client-server, le tue opzioni sono molto più limitate; in effetti, non riesco a pensare a una singola soluzione che abbia mai progettato nella mia testa o in pratica che non sia massicciamente frustrante. Probabilmente si potrebbe fare anche qui una soluzione di codice di licenza, ad eccezione del fatto che il codice di licenza avrebbe in qualche modo un payload che indicava il numero di utenti per cui hanno pagato e quindi non consente la creazione/utilizzo di utenti in eccesso rispetto a quel numero. A quel punto, però, stai davvero camminando sulla linea di frustrazione che ho menzionato.

+0

È un'applicazione client-server. Gli utenti usano broswer come client. Il server verrà installato nella rete dei client. Ogni utente avrà un account creato dal suo amministratore ma fino al numero per il quale ha acquistato la licenza. Se raggiungono quel massimo e vogliono più licenze, possono semplicemente comprarlo e aggiornare la licenza nel loro sistema e via. –

+0

In tal caso, direi che usare la chiave di licenza per indicare che il taglio è la strada da percorrere. –

3

Se si può offuscare - questo è il modo di iniziare. Ma potrebbe essere doloroso se si utilizza l'inversione dei quadri di controllo (ad esempio la primavera). Ho sentito che è possibile offuscare anche il contesto di primavera, ma non l'ho mai provato. Inoltre (solo indovinando) potrebbero esserci delle sorprese con riflessi, proxy dinamici e così via. Per quanto riguarda le licenze, posso suggerire di utilizzare TrueLicense. Ha mezzi molto flessibili per gestire vari aspetti della protezione e periodi di prova gratuiti fuori dagli schemi. Funziona molto bene e ha un'ottima documentazione.

0

I clienti pagano per il supporto di questa applicazione? Se è così, c'è una possibilità che il supporto sia un pay-off più grande rispetto alla licenza dell'applicazione stessa. In tal caso, è possibile considerare non bloccando l'applicazione, ma piuttosto, scegliendo di fornire solo il supporto per copie autentiche del software (copie non modificate dimostrate tramite checksum e tale). Molte aziende che concedono licenze a questo software sarebbero più inclini ad evitare qualsiasi modifica (anche se la possibilità che stiano volendo fare questo è probabilmente minima) al fine di non mettere a repentaglio il proprio supporto.

FYI: Ecco come Oracle tende a operare con la loro e-Business Suite. Puoi modificare praticamente tutti i componenti che desideri. Buona fortuna per ottenere supporto, però!

0

Guarda come Atlassian vende i loro prodotti. Credo che questo sia un approccio che funziona molto bene e probabilmente lo farebbe anche per te. Nota: dovrebbe esserci un valore aggiunto nell'abbonamento agli aggiornamenti!