Sto facendo un po 'di lavoro Java per un'azienda che ha del codice che desidera proteggere in un'applicazione che sta dando ai suoi clienti.
Ad esempio, cosa succede se si dispone di informazioni come le informazioni di accesso FTP o DB nel codice sorgente dell'applicazione lato client? Il login sarebbe visibile a chiunque abbia visualizzato il codice, quindi l'accesso al tuo server è proprio lì fuori, il che significa che anche il tuo codice sul server sarebbe vulnerabile. Se le informazioni di accesso devono essere protette inviando le informazioni utilizzando HTTPConnection / HTTPClient al server da elaborare durante l'utilizzo di Crittografia in transito e l'invio delle credenziali di accesso per verificare che la richiesta provenga da una fonte legittima.
Tuttavia, ciò non sarebbe altrettanto rischioso nel caso in cui il server fosse compromesso / violato e la sorgente Java fosse spalancata? (Apparentemente Execelsior può fare la protezione del server con le applicazioni Tomcat quindi c'è anche quella).
Stavo anche esaminando vari programmi Java-to-Exe come Excelsior Jet, ma ho anche eseguito programmi che simulano Exe e apparentemente hanno una protezione come JWrapper.
Che gli exe emulati non siano protetti e contengano ancora file Jar, quindi presumo che la migliore scommessa siano programmi simili a Execelsior Jet e un programma come JWrapper non andrebbe bene allora?
Ci vorrebbe più tempo per qualcuno per decompilare il codice Nativo piuttosto che provare a hackerare un server (se sapessero anche cosa cercare, o che stiamo anche cercando di nascondere qualcosa). La mia migliore scommessa sarebbe fare server + Excelsior, ma il prezzo sale anche se voglio ottenere la versione Enterprise invece di Professional.
Sono curioso di quale approccio le persone raccomanderebbero per metodi di protezione sicuri. Grazie.
EDIT: questa domanda non è un duplicato, perché l'altra domanda riguarda la protezione del codice dell'applicazione Web da "Host Web".
Mi sto chiedendo quale sarebbe il miglior metodo per proteggere il mio codice sorgente. Indipendentemente dal desktop o dal server. L'altra domanda avrebbe senso se stavo guardando una soluzione server, ma non fornisce una soluzione al mio bisogno.
Grazie.
EDIT2: Sembra che il consenso sia che "se qualcuno vuole rompere, lo farà ..." ma non c'è un punto per proteggerlo per impedire a chiunque di limitarsi a guardare il codice? Ci sono programmatori che non sono esperti nel reverse engineering, ma possono ancora capire il codice se è leggibile.