Quanto è sicuro il codice compilato da ionCube?

4

Io uso ionCube per mantenere il codice che scrivo nascosto ai miei clienti.

Se dovessi memorizzare una password all'interno del codice e compilare (non crittografarlo) con il codificatore ionCube, sarebbe possibile che un potenziale hacker possa ottenere tale password?

Ad esempio, è possibile decodificare parti del codice PHP, che è stato compilato con ionCube?

Oppure potresti inviare comandi come get_defined_vars() in una pagina che era compilato, se si dispone dei file di origine crittografati completi?

    
posta rubo77 25.06.2013 - 12:43
fonte

3 risposte

7

Sì, è possibile decodificare tutto ciò che è in esecuzione all'interno di un computer. Sarà sempre caricato, a un certo punto, nella memoria, a quel punto sarà non crittografato / decodificato / decompresso / e.t.c., in modo che il processore possa gestire tale codice.

Nel tuo caso, verrà eventualmente utilizzata una password codificata in una variabile. E così può essere usato, prima non sarà criptato ...

    
risposta data 25.06.2013 - 18:24
fonte
1

Avviso: l'autore di questa risposta è affiliato con ionCube. Si prega di tenere presente che le risposte e i commenti inviati dai dipendenti di ionCube, pur con buone intenzioni, possono essere soggetti a conflitti di interesse.

Le risposte qui sono buone, anche se pensieri come "qualsiasi cliente ficcanaso non avrebbe molti problemi a estrarre la chiave di crittografia dal codice compilato" allunga un po 'le cose perché gli utenti finali e la maggior parte degli sviluppatori PHP in genere non hanno le conoscenze richieste in termini di modificare il motore PHP per esporre i dati di runtime in qualsiasi modo utile.

La protezione da codice byte si basa sulla compilazione di codice in una lingua diversa, il bytecode, e sta facendo il massimo sforzo sia per rendere il bytecode e i metadati difficili e costosi da scoprire, sia per capire se lo si ottiene. ionCube compila il codice, usa varie tecniche per proteggere il bytecode e usa un motore di esecuzione PHP non standard per poter utilizzare il bytecode che differisce dal bytecode che normalmente PHP genererebbe. Ciò rappresenta la dimensione relativamente grande del componente Loader di runtime rispetto a quello di altre soluzioni.

L'utilizzo di funzioni PHP come get_defined_vars() che menzioni potrebbe non essere possibile perché i file possono essere codificati in modo da funzionare solo con file codificati prodotti dalla stessa copia dell'Encoder e fallire se un file codificato è stato sostituito con uno non codificato. Allo stesso modo, l'uso dell'offuscamento delle variabili può interrompere i risultati di tali funzioni.

Ci sono sono limitazioni a ciò che è possibile con PHP essere opensource, così come i compromessi nel bilanciare l'obiettivo della protezione con le prestazioni di runtime e la compatibilità con le installazioni standard, in particolare, i server condivisi. Mentre le password per mysqli_connect() , ad esempio, potrebbero essere ben protette, un hacker potrebbe modificare la libreria mysql o il wrapper della libreria mysqli PHP e ricompilare PHP per esporre la password in fase di runtime. Tuttavia, questo potrebbe non essere un problema nella pratica, e se lo fosse, ci sono modi per aumentare la sicurezza a condizione che non sia richiesta la compatibilità con le installazioni PHP predefinite. Si consiglia di contattare ionCube per un consiglio per ottenere informazioni sulle strategie che meglio si adattano al tuo caso d'uso, e potresti imparare delle possibilità non pubblicizzate di cui non saresti a conoscenza.

    
risposta data 29.06.2013 - 20:39
fonte
1

Non molto sicuro, ma puoi usarlo per evitare interferenze esterne. Devo dire che è meno del 50% sicuro al 100%. Ci sono molti strumenti su Internet per decompilare parzialmente le vecchie versioni di ionCube.

Un esempio - decodificatore ionCube

Ti consiglio di scegliere altri strumenti di crittografia per proteggere il tuo codice.

    
risposta data 01.07.2013 - 19:02
fonte

Leggi altre domande sui tag