C'è un modo per controllare se il codice ridistribuito è stato alterato?

0

Vorrei ridistribuire la mia app (PHP) in modo che l'utente ottenga il livello front-end (presentazione) che utilizza l'API sul mio server attraverso un servizio web. Voglio che l'utente sia in grado di modificare la sua parte dell'app ma allo stesso tempo escludere tale app alterata dal supporto normale e offrire supporto in base al pagamento dell'orario.

C'è un modo per verificare se il codice sorgente è stato modificato? L'unica soluzione che posso pensare sarebbe quella di ottenere il controllo delle somme di tutti i file, quindi inviarlo attraverso la mia API e confrontarli con l'app originale. C'è un modo più sicuro per farlo, quindi sarebbe più difficile per l'utente rompere tale protezione?

    
posta onlineapplab.com 13.12.2012 - 19:43
fonte

4 risposte

2

Un algoritmo di checksum / hashing come quello che stai suggerendo funzionerà abbastanza bene.

Non è infallibile, come suggerisci tu. Ma non ha bisogno di essere. Le persone che possono "incrinare" il meccanismo di protezione che stai mettendo in atto sono le stesse persone che non utilizzeranno i tuoi servizi orari per il supporto.

Tutti i possibili scenari che implicano lo sforzo di supporto da parte tua ti porteranno a scoprire il codice modificato. Quindi direi che ciò che hai suggerito è sufficiente. Vai a prenderlo e provalo.

    
risposta data 13.12.2012 - 21:12
fonte
1

Hai considerato di ospitare il frontend sui tuoi server, quindi accettare i caricamenti dal client? In questo modo puoi tenere un registro se lo hanno personalizzato o no, se hanno inviato o meno una versione aggiornata, e che hai il file localmente da confrontare se è mai in dubbio.

    
risposta data 13.12.2012 - 21:25
fonte
0

No, non puoi fidarti di nessun dato inviato dal cliente. Può e sarà falsificato.

Trascorrere un periodo di ingegnerizzazione con l'aggiunta di test è un compromesso rispetto al valore che ci si aspetta di perdere da queste modifiche non rilevate.

Dovresti stabilire i termini di modifica nella tua licenza e questo dovrebbe darti un motivo sufficiente per agire.

    
risposta data 13.12.2012 - 19:47
fonte
0

Is there a way to check if the source code was altered? Only solution I can think of would be to get check sums of all the files then send it through my API and compare them with the original app. Is there any more secure way to do it so it would be harder for the user to break such protection?

No, non ti puoi fidare delle metriche del codice dal client. Perché, quel codice potrebbe essere compromesso / modificato o falsificato durante il trasporto. A meno che i tuoi clienti non comunichino con la tua API attraverso canali sicuri fidati, non c'è modo di convalidare l'autenticità delle informazioni.

Fondamentalmente, devi riuscire a proteggere il tuo canale di comunicazione tramite certificati o SSL, nonché l'identificazione / registrazione delle applicazioni client.

    
risposta data 13.12.2012 - 20:12
fonte

Leggi altre domande sui tag