PDA

View Full Version : [PHP] Nascondere il codice sorgente...


race2
22-03-2005, 15:10
Vorrei rendere impossibile copiare il codice di una pagina .php da altri utenti, e ho pensato a questo:


<?
//includo la chiave di decryptazione
include("http://www.dominio.it/chiave.php");

//qui' tutto il codice cryptato
function Source(){
$code="
s]zmіbGE]wEN%P<Oai|0K5R,9
{Vp:|R[Q-+XJ*$Amwm/>%\Ư`:
hx^ɵ 2 9J X+MU
-{: fټ{ c<IyM^-I<G#]̺s_C~<;>*-
d6G1$ٗ 󊡩>f'5LO4!LO>X&
_f(֦zzb^RwXCZ_hkg5 2]AC( 0Un)ߙ
c< hR^,&O:I2
QO%vAøE6E*z1(q)
";
return $code;
}

//qui' una funzione che decrypta tutto il PHP e l'HTML
FUNZIONE_di_DECRIPTAZIONE(source());
?>


cioe': con una funzione di cryptazione processo il codice e lo visualizzo a schermo con un echo, copio il codice e lo incollo all'interno della funzione "Source()" dell'esempio....

poi richiamando la pagina includendo da un dominio privato mio la chiave di decryptazione e tramite una funzione decryptazione rendero' visibile il tutto;

Si puo' fare ???
Se si con quali funzioni di Cryptazione e Decryptazione ???

tglman
22-03-2005, 16:05
puoi crearti anche tu una funzione di criptazione del tipo XOR.....

Cioe prendi una parola qualsiasi e per ogni carattere della pagina che devi criptare fa lo XOR con un carattere della parola.. ti faccio un piccolo esempio(in c che per me corrisponde alla logica)



char *testo_da_criptare="ciao mondo come va";
char testo_criptato[100];
char * chiave="chiave";
for(int i=0,k=0;i<strlen(testo_da_criptare);i++)
{
testo_criptato[i]=testo_da_criptare[i]^chiave[k];
if(strlen(chiave)==k)k=0;
}


una funzione del genere anche biettiva ciove se al posto di testo_da_criptare inserisci il testo criptato in testo_criptato trovi il testo decriptato...

Pero non vedo l'utilit, la pagine php non possono essere lette senza essere interpretate e comunque hai delle protezioni anche al livello server..

race2
22-03-2005, 16:32
1) L'Utente dato che e' il proprietario puo' scaricare via FTP tutti i sorgenti,

2) L'Utente scarica i sorgenti e li apre, se faccio come dico io trova solo una funzione con dentro tutti i caratteri dell acriptazione come fa vedere il mio esempio....

chiaramente nei sorgenti non ci deve essere il codice ma la criptazione del codice, come da esempio.

tglman
22-03-2005, 16:54
ho capito una specie di copy right....

be puoi includere(non so se si pu da remoto) il file remoto con all'interno il codice di decriptazione per poi decriptare la pagina..
attento per, per poter utilizzare il codice una volda decriptato non puoi fare un semlice echo ma devi prima sarvarlo su un file per poi includerlo nella pagina...
Passaggi logici
1)includo il file di decriptazone
2)decripto la pagina
3)salvo la paggina decriptata su un file
4)includo la pagina per restituire il responzo..
5)elimino la pagina decriptata per non lasciare tracce..

secondo me questo metodo un po lungo e non so quanto ti conviene....
ciao..

race2
22-03-2005, 17:11
Hai azzeccato e mi sa che hai ragione,

ma ora ci rifletto un po e poi vedo, grazie dei consigli, ciao!

Blackat
22-03-2005, 17:54
in teoria esiste la funzione eval (http://it.php.net/manual/it/function.eval.php) che esegue un pezzo di codice valido di php passato in stringa come argomento.

Io l'ho sempre usato per eseguire un solo comando, dovresti provare
se funziona per un intero blocco di programma. :confused:
Sul manuale sembrerebbe di si, boh...prova :rolleyes:

Ciao.

beppegrillo
22-03-2005, 22:57
Comunque esistono tool appositi per il crittaggio dei sorgenti php.

lombardp
22-03-2005, 23:59
Se non ho capito male, l'idea sarebbe quella di dare al cliente la "licenza d'uso" del codice, ma non la possibilit di accedere ai sorgenti.

In tal caso ti propongo un'altra possibilit: il codice pi semplice e comune lo lasci in chiaro nella pagina. Le parti di codice che intendi proteggere le fai eseguire su un tuo hosting personale. Il codice del cliente semplicemente richiama l'esecuzione di particolari funzioni dal tuo hosting personale e include i risultati nell'output.

cionci
23-03-2005, 07:34
Originariamente inviato da lombardp
In tal caso ti propongo un'altra possibilit: il codice pi semplice e comune lo lasci in chiaro nella pagina. Le parti di codice che intendi proteggere le fai eseguire su un tuo hosting personale. Il codice del cliente semplicemente richiama l'esecuzione di particolari funzioni dal tuo hosting personale e include i risultati nell'output.
Credo che l'unica soluzione veramente percorribile sia questa...anche se non so se con l'inclusione remota il codice debba passare in chiaro... In questo caso non sarebbe comunque una soluzione valida...
Credo comunque che ci siano dei compilatori/cryptatori anche per PHP anche se non so quanto affidabili...visto che un servizio dovrebbe anche girare sulla macchina dove deve girare il codice php...

race2
23-03-2005, 07:55
GIa' mi sembra un ottima soluzione, ora faccio un test e se non riesco mi faro vivo, per ora vi ringrazio a tutti, a presto!