Quello che stai cercando di fare è comunemente noto come sicurezza attraverso l'oscurità , e generalmente non è una buona idea. Puoi trasformare parti del tuo codice PHP in estensioni PHP * se vuoi, ma la tua motivazione primaria dovrebbe essere l'efficienza e non la sicurezza, dato che ogni pezzo di codice compilato può ottenere avviato enginered con un decompilatore . Come Claude Shannon metti la cosa migliore: The enemy knows the system
.
Ma se vuoi davvero farlo, uno dei modi più efficaci per farlo è HipHop di Facebook :
HipHop transforms your PHP source code into highly optimized C++ and then compiles it with g++ to build binary files. You keep coding in simpler PHP, then HipHop executes your source code in a semantically equivalent manner and sacrifices some rarely used features – such as eval() – in exchange for improved performance.
Zend Guard è in effetti commercializzato come uno strumento per proteggere il tuo codice dagli occhi dei privati:
Zend Guard (formerly Zend Encoder) protects your applications from reverse engineering and unauthorized customization by providing encoding and obfuscation. It further protects from unlicensed use and redistribution by providing comprehensive licensing support. This combined functionality makes software distribution worry free.
ma si parla solo di vendite, la codifica di Zend Guard è facilmente distrutta come quella di IonCube.
Certo, se riscrivi il tuo codice come estensioni, o lo trasformi e lo compili con HipHop, o lo codifichi e lo offuschi con Zend Guard, stai aggiungendo un ulteriore livello di sicurezza, un livello molto sottile, che probabilmente scoraggerà Novizio sviluppatori. Se vuoi davvero proteggere la tua proprietà intellettuale, dovresti affrontarla legalmente: consulta un avvocato e firma un contratto con i tuoi clienti prima di inviare il codice.
Ovviamente potresti avere alcune dipendenze dalla modalità saas, a patto che ciò non influenzi le prestazioni e l'efficienza del tuo prodotto finale. Se lo fai solo per motivi di sicurezza, fallo male.
* Scrivere estensioni è una cosa abbastanza complessa da fare, e c'è meno di una piccola documentazione per questo. Un buon punto di partenza è Extension Writing Parte I: Introduzione a PHP e Zend , in DevZone di Zend. Solo un suggerimento: devi avere familiarità con C e avere familiarità con il codice sorgente di PHP.