PDA

View Full Version : [PHP ?]protezione anticopia


Vecchia Spugna
17-02-2010, 11:27
Salve ragazzi.
Mi trovo nella, per me inedita, situazione di dover fare un programmino per un tizio, che a sua volta lo rivenderà.
Siccome la mia fiducia verso l'onestà di questa persona è pari a quella che ho per la vittoria dello scudetto da parte della juventus vorrei sapere da voi come vi siete comportati in passato per situazioni del genere.

Le premesse sono che io sviluppo il software e basta (l'istallazione la fa lui), quindi è scontato che il codice va in qualche modo oscurato, ed oltre a ciò va legato ad una particolare macchina.
E' ottima l'idea di collegarlo al mac address, se non fosse che questo si può modificare.

PHP (o qualche altro linguaggio (ruby on rails?))offre qualche strumento per accedere a qualche altro dato? o, ancora, voi avete qualche espediente?


vi ringrazio per l'attenzione

Fibrizio
17-02-2010, 12:21
Salve ragazzi.
Mi trovo nella, per me inedita, situazione di dover fare un programmino per un tizio, che a sua volta lo rivenderà.
Siccome la mia fiducia verso l'onestà di questa persona è pari a quella che ho per la vittoria dello scudetto da parte della juventus vorrei sapere da voi come vi siete comportati in passato per situazioni del genere.

Le premesse sono che io sviluppo il software e basta (l'istallazione la fa lui), quindi è scontato che il codice va in qualche modo oscurato, ed oltre a ciò va legato ad una particolare macchina.
E' ottima l'idea di collegarlo al mac address, se non fosse che questo si può modificare.

PHP (o qualche altro linguaggio (ruby on rails?))offre qualche strumento per accedere a qualche altro dato? o, ancora, voi avete qualche espediente?


vi ringrazio per l'attenzione

Il PHP, che ogni volta viene "ricompilato", o meglio eseguito dal codice sorgente, non è un linguaggio adatto al tuo scopo. Sarebbero migliori C/C++, VB.net e simili, per comporre un eseguibile, tenendoti tu il codice sorgente.

Se devi comunque usare il PHP (esistono anche dei metodi di codifica/decodifica, ma poco funzionali) un consiglio è di programmare in modo poco chiaro, rendendo dunque difficili (anche se non impossibile) le modifiche al codice sorgente e l'individuazione di parametri di controllo.

anonimizzato
17-02-2010, 14:11
Salve ragazzi.
Mi trovo nella, per me inedita, situazione di dover fare un programmino per un tizio, che a sua volta lo rivenderà.
Siccome la mia fiducia verso l'onestà di questa persona è pari a quella che ho per la vittoria dello scudetto da parte della juventus vorrei sapere da voi come vi siete comportati in passato per situazioni del genere.

Le premesse sono che io sviluppo il software e basta (l'istallazione la fa lui), quindi è scontato che il codice va in qualche modo oscurato, ed oltre a ciò va legato ad una particolare macchina.
E' ottima l'idea di collegarlo al mac address, se non fosse che questo si può modificare.

PHP (o qualche altro linguaggio (ruby on rails?))offre qualche strumento per accedere a qualche altro dato? o, ancora, voi avete qualche espediente?


vi ringrazio per l'attenzione

Con PHP, come per qualunque linguaggio di scripting, il codice viene compilato runtime quindi non puoi evitare di fornire i sorgenti come per i linguaggi pre-compilati (spero di non aver detto boiate).

Quello che puoi fare è trovare ed usare uno strumento che ti permetta di "offuscare" il codice ovvero uno di quei compattatori che renda poi arduo per non dire impossibile il lavoro a chi volesse mettere mano a quello che tu hai creato e fornito.

nuovoUtente86
17-02-2010, 14:19
Con PHP, come per qualunque linguaggio di scripting, il codice viene compilato runtime quindi non puoi evitare di fornire i sorgenti come per i linguaggi pre-compilati (spero di non aver detto boiate).

Quello che puoi fare è trovare ed usare uno strumento che ti permetta di "offuscare" il codice ovvero uno di quei compattatori che renda poi arduo per non dire impossibile il lavoro a chi volesse mettere mano a quello che tu hai creato e fornito.

più che sorgente di tratta di codice oggetto intermedio.

Vecchia Spugna
17-02-2010, 15:02
ok.. ottimo. step 1 ci siamo.

però resta il fatto che si può prendere quel che c'è su un apache, metterlo su un altro e tutto continua a funzionare
(se associo il programma ad un MAC c'è il passaggio intermedio di mettere il MAC dell'altro pc)

nuovoUtente86
17-02-2010, 15:25
l' idea del mac è del tutto inutile.

Vecchia Spugna
17-02-2010, 16:33
funzionerebbe se non ci fossero intermediari, l'utente normale non ha alcun interesse a redistribuire qualcosa che ha pagato

nuovoUtente86
17-02-2010, 16:44
indipendentemente da chi ha interesse o meno, è una protezione molto molto labile. Già è diverso tracciare l' hard disk.

banryu79
17-02-2010, 17:22
Le premesse sono che io sviluppo il software e basta (l'istallazione la fa lui), quindi è scontato che il codice va in qualche modo oscurato, ed oltre a ciò va legato ad una particolare macchina.

Ciao, ti riporto una mia esperienza: tre mesi fa mi è stata richiesta una applicazioncina desktop che si collegasse (via FTP) ad una telecamera remota (x sorveglianza aree ecologiche) per permettere all'utente di cercare, vedere l'anteprima e/o scaricare immagini/video filmati in precisi giorni/fascie orarie prodotti dalla telecamera.

Siccome un'applicazione del genere non è "rocket science" scelsi di venderla al committente (lui la distribuisce con la telecamera e servizi annessi che formano il pacchetto di sorveglianza che vende) comprensiva dei sorgenti [edit: il committente è un programmatore anche lui, anche se non conosce Java, ma nel caso ha sempre la possibilità di metterci le mani in prima persona], senza alcuna protezione; concordato che gli avrei venduto l'applicativo "chiavi in mano" e che sarei rimasto a disposizione per eventuali futuri interventi ho con lui pattuito una cifra una tantum.

Non so se avevi pensato (sempre se nella tua situazione è fattibile/conveniente) ad una soluzione del genere.

Vecchia Spugna
17-02-2010, 17:34
il punto è che glielo vendo la prima volta e faccio come hai detto tu. Però se a lui gli capita di venderne altri a me non viene niente. E siccome lui non sa quanti ne vende non possiamo nemmeno accordarci prima.

La mia idea era di vendegli le licenze, di modo che ci si accorda volta per volta sul prezzo

banryu79
17-02-2010, 17:54
il punto è che glielo vendo la prima volta e faccio come hai detto tu. Però se a lui gli capita di venderne altri a me non viene niente.

Io parlo per il mio caso, che ti ho descritto sopra.
So che il mio committente vende il suo "pacchetto" a enti pubblici.
Al momento aveva 3 o 4 compratori.

Così gli ho fatto una cifra forfettaria, sapendo questo e sulla base delle funzionalità richieste che il software doveva soddisfare e una conseguente mia stima sul tempo (oer di lavoro) che avrei impiegato per produrlo.

Ovviamente l'aspettativa (presumo realistica) del committente è di avere altri clienti in futuro a cui vendere il pacchetto: ho pensato che all'aumentare degli utilizzatori del software aumenta la possibilità che vengano richieste nuove funzionalità: se il committente deciderà di espandere le capacità del software e non ha il tempo (e questo è quasi certo) di eseguire in prima persona le modifiche si rivolgerà ad un terzo, ma in quel caso uno dei candidati migliori sono proprio io, in quanto autore di quello che già è stato prodotto.

In tal caso contratterò un'altra volta una cifra una tantum per estendere l'applicativo.

Lui è contento perchè non deve pagare una licenza, io sono contento perchè non devo gestire un sistema di licenze per il software con annessi sistemi di protezione.

(Io ho fatto il conto che con le singole licenze comunque non avrei guadagnato abbastanza, se non su grandi numeri, e stimo maggiore la probabilità/convenienza di richiesta di future espansioni dell'applicazione [e relativi guadagni] che non il raggiungimento di "grandi numeri" di licenze vendute.)

Tutto questo sempre tenendo da conto il fatto che il software in oggetto non è "cutting-edge technology" (è poco complesso) e dal mio punto di vista non giustificava una protezione [il rischio che venga copiato è per me trascurabile].

Vecchia Spugna
17-02-2010, 18:15
ho capito come hai fatto tu. è un ottima soluzione, anche se non so quanto si adatti al mio caso.

In ogni caso mi ha fatto molto riflettere, grazie per il parere

banryu79
17-02-2010, 18:34
ho capito come hai fatto tu. è un ottima soluzione, anche se non so quanto si adatti al mio caso.

In ogni caso mi ha fatto molto riflettere, grazie per il parere
Prego,e buon lavoro :)

Vecchia Spugna
17-02-2010, 20:04
questo approccio mi incuriosisce...

la validazione verrebbe fatta soltanto all'inizio o tutte le volte che si esegue lo script?

in caso sia fatta all'inizio non esiste la possibilità che l'utente maligno copi il contenuto della cartella DOPO la validazione, in modo da trovarsi un programma bello e validato?