Una volta che i tuoi clienti hanno un programma che possono eseguire, saranno in grado di eseguire il reverse engineering con un tempo e un'ampiezza sufficienti; abilità. Questo è solo un dato di fatto.
Se vuoi davvero fermarlo, dovresti ospitare ed eseguire il software da solo ( SaaS )
Detto questo, qualcosa come Python sarà più facile di C. Dividiamolo nelle 3 parti che hai chiesto (e poi ancora di più)
HTML
Indipendentemente da ciò che fai qui, verrà decrittografato nel browser (anche nel modello SaaS), quindi la crittografia sul server è inutile. Anche minimizzare è inutile dato che i browser moderni come Firefox e Chrome lo formattano in modo ordinato.
CSS
Vedi sopra - non perdere tempo
JavaScript
Yahoo ha uno strumento che può offuscare per te. Prova YUI Compressor . No, non criptarlo entrambi sul lato server poiché deve essere servito al client non crittografato *, il che vanificherebbe lo scopo.
Python
Questo è l'unico posto in cui vuoi veramente passare il tuo tempo, proteggendo la tua logica di business. Ci sono diversi metodi che troverai su google come la crittografia su disco e poi la decrittografia in fase di esecuzione. Tutti questi metodi hanno problemi, come i colpi di performance e il dover fornire il decodificatore (consentendo quindi di decrittografarlo chiunque).
Il tuo miglior beat per impedire a coloro che non si accaniscono di rubare il tuo codice sarebbe di usare un offuscare il tuo codice Python .
Riepilogo
L'unico codice che puoi impedire a qualcuno di ottenere è il codice che non gli dai. HTML, CSS e amp; Javascript sempre finirà sulla tua macchina degli utenti in un modo che possono utilizzare, quindi presume che siano in grado di rubarlo se lo desiderano, sfortuna.
Per proteggere il tuo codice server, il solo metodo sicuro è NON darglielo, eseguendolo in qualcosa come un modello SaaS.
Se ciò non è possibile, il meglio che puoi fare è renderlo più difficile per loro.
Test
Assicurati sempre di testare la versione di produzione che fornirai ai tuoi clienti. Ciò garantisce che eventuali passi di build speciali (come l'offuscamento e la minimizzazione) non interrompano il software.
Cose aziendali noiose
Quindi tutto quanto sopra (e la tua domanda) ha affrontato questo problema dal lato tecnico. L'altro lato della medaglia è dal lato commerciale / legale.
Se si dispone di un numero limitato di client, è possibile fornire diverse versioni "filigranate" del software a ciascun client. In questo modo, aumenti la possibilità di rintracciare il software rubato alla fonte e intraprendere qualsiasi azione legale appropriata.
Non dimenticarti, se sei impegnato in un'attività seria, sarebbe meglio consultare un avvocato su come provare e far rispettare la proprietà del tuo software, nel caso le cose dovessero andare male.
* non è strettamente vero, potresti servirlo crittografato e avere altri Javascript che lo decodificano al volo, ma questo sarebbe quasi inutile in quanto aggiunge un successo in termini di prestazioni e dovrai comunque fornire l'hacker con il decrypter ...