View Full Version : Nascondere il codice sorgente per progetto "web"
Salve, ho un progetto web da sviluppare e successivamente "fittare" a più utenti. Il progetto consiste in un server, che gira su un computer - in locale, che mostra delle pagine web sviluppate in jsp o php... quando altre persone (tramite cellulare) si connetteranno a questo pc, ad una precisa pagina web, vedranno una versione mobile con cui interagire.
Esiste un modo per sviluppare un progetto del genere "criptandolo"? ovvero una volta dato, fare in modo che il codice sorgente non sia in chiaro (così gli altri non possono modificarlo)... Per capirci, come fosse un unico eseguibile exe và :D
Grazie
credo proprio di no.
mi viene in mente solo node-webkit che permette di distribuire l'app ma non fa al caso tuo e comunque non capisco il senso di tutto questo
credo proprio di no.
mi viene in mente solo node-webkit che permette di distribuire l'app ma non fa al caso tuo e comunque non capisco il senso di tutto questo
Perchè non lo capisci?
Tuvok-LuR-
22-02-2014, 12:34
scusa ma se lo fai in java/jsp ovviamente la parte server viene compilata e non vedono il sorgente. per php questo fa una cosa analoga http://www.ioncube.com/php_encoder.php
per il javascript il massimo che puoi fare è minificare ed offuscare
Per la parte "mobile" non ci sono problemi, così come per javascript (come mi hai consigliato).
Il php encode potrebbe essere una soluzione. Ma ho un altro dubbio. Per fare in modo che una utente A a cui fitto il sistema, non possa farlo usare o farlo copiare anche ad altri utenti, si potrebbe inserire il tutto in una pennetta usb?
Cioè, io presto questa penna usb, tu usi il sistema e appena fatto me la restituisci. Il tutto non dovrebbe essere copiabile... (non so se ho reso bene il problema) XD
magari anche creando una distro linux live, con tutta la configurazione sopra (apache, php, mysql), così da inserire in qualunque pc e far funzionare il tutto (come se io fornissi un pc fisico già configurato)... il contenuto della penna non dovrebbe però essere copiabile sul pc, nè l'applicazione web...
perchè nn avere tutto su un tuo server?
le macchine in questione non hanno connettività a internet?
no, non hanno connettività, non è possibile usare Internet... è possibile creare solo una rete locale
Se usi php c'é zend guard/ioncube
Java è un bytecode quindi sei parato.
Altri linguaggi potrebbero essere python o go (l'unico di questi compilato).
In tutti i casi anche per quelli interpretati (facendo uso di giusti offuscatori) è molto difficile se non impossibile arrivare ad un sorgente modificabile.
Comunque se il codice che crea le pagine è in linguaggio "lato server" senza un accesso fisico alla macchina il codice nessuno può vederlo...
Ciao
Daniels118
25-02-2014, 11:19
L'esperienza mi dice che:
1) l'utente medio non sa manco compilare un modulo di iscrizione, figuriamoci decompilare un programma;
2) decompilare un programma java è facile come avvitare una lampadina, ma l'utente medio non sa fare nemmeno quello;
3) non esiste ancora un decompilatore che riesca a ricostruire i sorgenti scritti in un linguaggio di alto livello di un programma compilato in linguaggio macchina;
4) un hacker esperto potrebbe modificare per benino un programma compilato in linguaggio macchina (ho detto modificare, non ricostruirne i sorgenti), ma lo farebbe solo se potesse ricavarne molti soldi, non certo per sfizio come qualcuno va dicendo.
Detto questo, valuta il rischio che sei disposto a correre e il pubblico a cui ti rivolgi e fai la tua scelta.
L'esperienza mi dice che:
1) l'utente medio non sa manco compilare un modulo di iscrizione, figuriamoci decompilare un programma;
2) decompilare un programma java è facile come avvitare una lampadina, ma l'utente medio non sa fare nemmeno quello;
3) non esiste ancora un decompilatore che riesca a ricostruire i sorgenti scritti in un linguaggio di alto livello di un programma compilato in linguaggio macchina;
4) un hacker esperto potrebbe modificare per benino un programma compilato in linguaggio macchina (ho detto modificare, non ricostruirne i sorgenti), ma lo farebbe solo se potesse ricavarne molti soldi, non certo per sfizio come qualcuno va dicendo.
Detto questo, valuta il rischio che sei disposto a correre e il pubblico a cui ti rivolgi e fai la tua scelta.
Sono d'accordo.. il problema però nasce nel momento in cui questo software viene "fittato" a diverse persone, che potrebbero pagare qualcuno (no un hacker, non ne varrebbe la pena XD), per copiare il codice e creare quindi un programma copia personale...
Scusa ma "fittare" ancora non ho capito che vuol dire :D
Comunque secondo me stiamo parlando di aria fritta. E tu sei poco specifico.
Dicci bene cosa stai creando o vuoi creare. Con che tecnologie, poi ci ragioniamo.
Daniels118
27-02-2014, 18:18
Metterlo su pen drive non va bene, basta copiare la pen drive e sei fregato.
Ti conviene preparare un tool che generi un'impronta digitale del sistema sul quale vuoi abilitare il software, quindi ricompili il programma con l'impronta digitale cablata all'interno, in modo che possa girare solo su quel sistema.
Avete ragione, vi spiego meglio.
Allora devo sviluppare un software tipo "quizzone" per una piccola azienda;
Poi questo software verrà fittato (letteralmente, una quota fissa a serata) per poterlo usare nei locali (domande sul proiettore ecc...) e poi dovrà essere restituito.
Quelli dell'azienda mi hanno espressamente chiesto di creare qualcosa che non possa essere copiato, in modo tale che, se qualcuno voglia utilizzare il loro gioco, debba dare una piccola quota per il fitto momentaneo (a serata)...
Prima di tutto, non posso installare il software sui diversi pc e poi fittare il tutto, perchè non ne hanno :D
Quindi la soluzione a cui stavo pensando era quella di creare una distribuzione live di linux (la più leggera possibile), installarci sopra il software. In questo modo chiunque voglia utilizzare il gioco dovrà richiedere queste penne usb ed eseguirle su qualunque pc, caricando l'intero sistema magari in ram, in modo da essere più veloce (dettagli...).
Affinchè il tutto non possa essere copiato, pensavo di utilizzare l'id univoco che ha ogni penna usb, e di usarlo come controllo ogni volta che si avviava il gioco, così che, se anche si copiasse il contenuto della penna, questo non potesse avviarsi.
(le penne ovviamente verranno restituite a prescindere!)
Inoltre il codice sarà "offuscato", quindi anche leggendolo sarà difficile risalire alla modalità di controllo dell'id...
E' più chiaro adesso?? :) Questa comunque è la mia idea... cercavo anche altre soluzioni, idee, suggerimenti...
Avete ragione, vi spiego meglio.
Allora devo sviluppare un software tipo "quizzone" per una piccola azienda;
Poi questo software verrà fittato (letteralmente, una quota fissa a serata) per poterlo usare nei locali (domande sul proiettore ecc...) e poi dovrà essere restituito.
Quelli dell'azienda mi hanno espressamente chiesto di creare qualcosa che non possa essere copiato, in modo tale che, se qualcuno voglia utilizzare il loro gioco, debba dare una piccola quota per il fitto momentaneo (a serata)...
Prima di tutto, non posso installare il software sui diversi pc e poi fittare il tutto, perchè non ne hanno :D
Quindi la soluzione a cui stavo pensando era quella di creare una distribuzione live di linux (la più leggera possibile), installarci sopra il software. In questo modo chiunque voglia utilizzare il gioco dovrà richiedere queste penne usb ed eseguirle su qualunque pc, caricando l'intero sistema magari in ram, in modo da essere più veloce (dettagli...).
Affinchè il tutto non possa essere copiato, pensavo di utilizzare l'id univoco che ha ogni penna usb, e di usarlo come controllo ogni volta che si avviava il gioco, così che, se anche si copiasse il contenuto della penna, questo non potesse avviarsi.
(le penne ovviamente verranno restituite a prescindere!)
Inoltre il codice sarà "offuscato", quindi anche leggendolo sarà difficile risalire alla modalità di controllo dell'id...
E' più chiaro adesso?? :) Questa comunque è la mia idea... cercavo anche altre soluzioni, idee, suggerimenti...
Secondo me il discorso dell'ID dela penna è poco utile perchè facilmente craccabile.
Offuscare sarebbe più che sufficiente ma lfai caso che vengano offuscate anche le stringhe di testo. Che rimangano cifrate.
A meno che dietro non ci sia una motivazione di miloini di euro nessuno si metterà a perderci il tempo necessario a craccarlo. Piuttosto se lo riscrive.
quindi, visto che nessuno ci perderà tempo per craccarlo, l'idea dell'ID non è poi così male... almeno eviti la copia diretta... no? anche perchè altre idee contro la copia non me ne vengono
quindi, visto che nessuno ci perderà tempo per craccarlo, l'idea dell'ID non è poi così male... almeno eviti la copia diretta... no? anche perchè altre idee contro la copia non me ne vengono
Sì, in effetti non è poi così male :)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.