Come proteggere il mio codice php in esecuzione su un server client?

6

Vorrei chiedere come proteggere il mio codice in esecuzione su un server client da essere alterato e / o copiato.
Funziona su Ubuntu Server con lo stack Apache Php Mysql standard.
Qualsiasi software necessario dovrebbe preferibilmente essere open source.

Vorrei anche chiudere l'applicazione quando c'è un problema di licenza.
Fare questo usando il mio codice è possibile ma dal momento che è php il client potrebbe modificare il codice per evitare che ciò accada.

    
posta HTDutchy 13.01.2013 - 13:41
fonte

4 risposte

3

Se hai bisogno di proteggere un magnifico algoritmo, potresti avere il codice seduto sul tuo server con un'API autenticata per accedervi, quindi distribuire i programmi che utilizzano quell'API e vendere le credenziali per utilizzare quell'API. Sarebbe quindi possibile controllare l'accesso al codice come desiderato. Questa sarebbe una sorta di software come un sistema di tipo di servizio che può essere molto efficace nel combattere la pirateria del software.

Tuttavia questo sistema ha molti potenziali difetti, uno dei quali è molto difficile convincere i clienti a fidarsi di questo sistema sapendo che se la tua azienda rimuove i suoi server allora li perdono insieme a qualsiasi investimento di tempo / denaro nell'usare il servizio.

Inoltre, il costo / manutenzione sarebbe sostanziale considerando che sarebbe necessario essere in grado di supportare il traffico combinato di tutti i clienti ricevuti.

Probabilmente sarebbe più semplice fornire aggiornamenti / supporto in modo che le persone continuino a pagare per i tuoi servizi. Penso che varrebbe la pena prendere in considerazione i consigli forniti su come disabilitare la copia dei dati da una pagina web che qualsiasi tipo di protezione che può facilmente essere danneggiati potrebbe non valere lo sforzo di sviluppo e potrebbe infastidire gli utenti legittimi e invece aggiungere valore al continuare a pagare per una licenza.

    
risposta data 13.01.2013 - 19:00
fonte
3

Any software needed would preferably be open-source.

Per quanto ne so, sei sfortunato su questo. Rendere la "crittografia" PHP è un business, e le soluzioni open source non lo fanno / non lo tagliano bene (da quelle che ho trovato, mi ci sono voluti meno di 10 minuti per sconfiggerle perché tutto ciò che hanno fatto in realtà era base64_encode il codice, ruotalo alcune volte, quindi eval il processo inverso per eseguire il codice. Sostituire eval con echo ha reso banale la sconfitta. La migliore che ho visto ha usato variabili magiche come __LINE__ in per evitare questo tipo di cose, ma una volta notato questo, è stato comunque facilmente disabilitabile per qualsiasi sviluppatore PHP esperto.

IonCube è ancora piuttosto difficile da sconfiggere, devi pagare qualcuno di $ 5 - $ 8 per file per decrittarlo. Se hai molti file: questa è una barriera finanziaria. Hanno anche opzioni di licenza in modo da poter impedire che il codice venga copiato / incollato su altri server e venga eseguito così com'è.

    
risposta data 13.01.2013 - 14:00
fonte
2

Hai due opzioni: -

  1. Impara a fidarti dei tuoi clienti.
  2. re-Factor il tuo software in un linguaggio compilato (Java, C # funzionerà ma possono essere decodificati con facilità comparativa, C, C ++ sono praticamente impossibili da decodificare ma non sono molto utili per le applicazioni WEB).

Dovresti anche capire che qualsiasi programmatore ragionevolmente competente potrebbe probabilmente riprodurre il tuo sistema solo osservando il suo comportamento senza mai guardare il tuo codice.

    
risposta data 14.01.2013 - 03:20
fonte
0

Dai un'occhiata a questo nuovo progetto opensource:

link

BLENC è un'estensione che consente di proteggere gli script di origine PHP con Blowfish Encription. BLENC si aggancia a Zend Engine, consentendo l'esecuzione trasparente di script PHP precedentemente codificati con BLENC. Non è progettato per la completa sicurezza (è ancora possibile smontare lo script in codici op usando un pacchetto come XDebug), tuttavia mantiene le persone fuori dal tuo codice e rende difficile il reverse engineering.

    
risposta data 14.06.2013 - 21:13
fonte

Leggi altre domande sui tag