PHP et les encodeurs : point de situation
Par Armel FAUVEAU, vendredi 24 mai 2002 à 16:43 :: Lu sur le Web :: #542 :: rss
Curieusement, les solutions permettant d'encoder des scripts PHP fleurissent ici et là. Si Zend avait montré le chemin avec le Zend Encoder, nombreuses sont les alternatives payantes ou non désormais dispos. Il semblait intéressant de faire un tour rapide du sujet. Et plus précisement, de lister les principales solutions existantes à ce jour.
• Source Defender
Actuellement en version 1.0, Source Defender est une solution commerciale. Elle présente pas mal de limitations. Elle ne fonctionne qu'à partir de PHP 4.1.2. De plus, elle ne tourne à ce jour que sous Windows même si des déclinaisons pour Linux et FreeBSD figurent dans les cartons. Source Defender coute 299 USD.
• PHP Screw
PHP Screw se compose d'un encodeur et d'un décodeur sous la forme d'une extension .so. PHP Screw n'est dispo que sous Unix (à prioris Linux, FreeBSD, etc.) l'auteur laissant entendre que la plate-forme cible doit être POSIX (NDR : pour ma part, je n'ai pas réussi à le compiler sous Linux et je n'ai pas essayé sous FreeBSD).
• Zend Encoder
Actuellement en version 2.0, on ne présente plus ce produit de Zend. Difficile de savoir s'il se vend bien, toujours est-il qu'il vous en coutera 2.400 USD pour en obtenir une licence.
Rappelons qu'un script encodé via cet outil nécessite la présence du Zend Optimizer (gratuit) coté serveur pour pouvoir être exécuté.
• PBC
Sans doute l'une des solutions les plus ancienne, PBC désigne PHP Bytecode Compiler. Même si son nom ne l'indique pas (et pourrait même tromper l'éventuel intéressé), PBC est bien un encodeur (et non un éventuel compilateur PHP). Les sources de PBC ne sont pas disponibles, seul un binaire (.so) est téléchargeable. Sachant que le format des extensions Zend a pas mal évolué depuis la version ultime de PBC, n'essayez pas de le faire marcher, il serait étonnant que cela fonctionne avec PHP 4.1.0 ou plus. Ajoutons pour finir que la licence n'est pas indiquée.
• PHTML Encodeur
Nécessitant PHP 4.1.0 ou supérieur, PHTML Encodeur tourne sous Windows ou Linux. Il se décline en plusieurs versions, la version PRO coutant 120 USD.
• NIA Encodeur
Sous licence GPL, NIA Encodeur est dispo sous Windows, Linux et FreeBSD. Détail qui peut en faire son originalité par rapport aux autres solutions, NIA Encodeur n'est pas uniquement dédié au seul PHP. Il vise aussi les scripts ASP. A prioris, aucune version (même béta) n'est dispo à ce jour. Wait and see.
• microCode
La version 0.96 de microCode date du 11 mars dernier. Sous licence GPL, microCode est supposé tourner sous Windows et Linux. La encore, il sagit d'une extension.
• POBS
POBS désigne PHP Obfuscator/Obscurer. La dernière version (0.94) date du 12 mars dernier. Depuis, cette solution ne semble pas avoir évoluée. A l'inverse des solutions précédentes, POBS est totalement développé en PHP. Il ne nécessite pas la compilation d'un source en C et la mise en place d'une extension Zend coté serveur. Il est donc possible de le mettre en oeuvre sur des hébergements mutualisés très simplement.
Son fonctionnement reste trivial : POBS se propose de chiffrer les scripts PHP à coup de MD5 (algo de chiffrement non réversible) sur les noms de fonctions, les variables ou encore les constantes.
Par exemple, comme l'explique la documentation, la fonction MakeImageHtml sera remplacée par Fee2c1bdc, la variable $ImgText par $V1d9d94a6 et la constante USERDIR par C389a367e. Simple, mais très vite illisible. A noter que POBS est également en mesure de perturber l'indentation du code, supprimer les commentaires éventuels (NDR : information rare de nos jour :p), etc.
Précisons pour finir que POBS est publié sous licence GPL.
Ainsi, les solutions permettant de protéger le code source de ses applications PHP sont légion.
On peut tout de même s'intérroger sur la réelle utilité de ses solutions. D'une part cela peut sembler paradoxale d'avoir recours à de tels outils avec un langage comme le PHP clairement inféodé à la philosophie Open Source. D'autre part, même dans le cadre d'un projet commercial, il est rare qu'un client souvent fort éloigné des aspects purement (bassement :p) technique cherche à s'approprier un savoir faire qu'il ne maitrise pas.
Reste le cas particulier d'un outil complet et spécifique (générateur de site, outils de gestion et d'envoi de mailing liste, etc.) que son auteur aurait envie de distribuer à grande echelle (qu'il soit gratuit ou payant) sans en dévoiler le code source. Pourquoi pas.
Ceci étant, comme nous l'avons vu, la majorité des solutions nécessitent un déploiement spécifique coté serveur, réservant la chose aux seuls hébergements dédiés. Reste une solution plus légère comme POBS mais qui ne freinera pas longtemps en développeur, certes motivé, manquant clairement de créativité et disposant de pas mal de temps à perdre :)







Commentaires
#1 - Le dimanche 3 septembre 2006 à 02:06, par nours312
Ajouter un commentaire
Vous pouvez soumettre un commentaire en remplissant le formulaire ci-dessous. Toutes les contributions font l'objet d'une étape de modération par notre équipe.
Le code HTML dans le commentaire sera affiché comme du texte, les adresses internet seront converties automatiquement.