Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Obfuscation / protection

8 réponses
Avatar
Zouplaz
Bonjour, je souhaite "protéger" mes scripts PHP afin que certains personnes
ne puissent pas bidouiller avec : il s'agit surtout de protéger mon travail
et les empecher de récupérer pour d'autres projets les dizaines de classes
que j'ai développé. Fournir le code source (et donc payer pour) n'a jamais
été évoqué par contrat (surtout vu les prix pratiqués...), il s'agit
simplement d'un état de fait du à la technologie utilisée.

Zend optimiser ne peut pas être utilisé, je ne maitrise pas les plateformes
d'hébergement (toutes différentes).

J'ai trouvé sur google des produits commerciaux et des logiciels opensource
comme PHP Obfuscator (Semantic Designs) ou POBS

Même si l'obfuscation ne consiste pas en une protection réelle, elle peut
au moins casser sérieusement les pieds à ceux qui n'ont qu'une faible
connaissances de PHP, et c'est tout à fait ce que je souhaite.

Avez-vous déjà testé ces outils ? En existe-t-il d'autres ? Peuvent-ils
provoquer des erreurs d'exécution ?

Merci

8 réponses

Avatar
Jean-Marc Molina
Zend optimiser ne peut pas être utilisé, je ne maitrise pas les
plateformes

d'hébergement (toutes différentes).

C'est à dire ? Zend est selon moi la meilleure solution. Un pack complet qui
a prouvé son efficacité, surtout que ce sont les concepteurs de PHP.

J'ai trouvé sur google des produits commerciaux et des logiciels
opensource

comme PHP Obfuscator (Semantic Designs) ou POBS

Pas très logique d'utiliser un logiciel Open Source pour cacher tes propres
sources mais bon...

Autre solution : http://www.ioncube.com/html_encoder.php

Même si l'obfuscation ne consiste pas en une protection réelle, elle peut
au moins casser sérieusement les pieds à ceux qui n'ont qu'une faible

connaissances de PHP, et c'est tout à fait ce que je souhaite.

Je comprends que tu veuilles protéger ton travail mais par définition il est
protégé. Tu peux le distribuer sous licence déjà. Par défaut tu as des
droits d'auteur dessus. Après si quelqu'un s'en inspire c'est normal. Tu en
restes le créateur, la source.

Généralement on protège aussi, on encode, pour une question de perfs,
beaucoup plus rapide vu que le code est compilé.

Si tu comptes vendre ta solution, n'oublie pas la doc car un code protégé ne
sert à rien si il n'est pas accompagné d'une doc béton. Genre un petit coup
de Doxygen dessus pour avoir une doc bien pro.

Avez-vous déjà testé ces outils ?


Zend, surtout Zend. Il y a une nouvelle béta si tu veux t'amuser avec. Il
propose aussi un pack petite entreprise (Small Business) pour se faire la
main et lancer son produit.

Peuvent-ils provoquer des erreurs d'exécution ?


Peut-être pour les outils d'obfuscation-bidouille mais sûrement pas des
produits pro comme Zend et IonCube. Le code n'est pas trafiqué. Je ne sais
plus quel outil bidouillait le code mais c'était pas beau à voir. Il
n'utilisait pas le parseur de Zend pour parser PHP, il utilisait des
expressions régulières, résultat comme indiqué dans la doc, certains scripts
ne fonctionnaient plus... Et ça pour s'en rendre compte, faut déboguer comme
un malade alors que ça ne devrait pas être le cas. D'où une perte d'argent,
d'où l'intérêt de l'Open Source, du libre, de l'encodage & Cie. Rien à
toucher, le produit fonctionne, on peut le distribuer. Faut éviter la
transformation en clair :).

Enfin avec du Zend tu peux dormir tranquillo.

JM

Avatar
Zouplaz
Jean-Marc Molina - :

Zend optimiser ne peut pas être utilisé, je ne maitrise pas les
plateformes

d'hébergement (toutes différentes).

C'est à dire ? Zend est selon moi la meilleure solution. Un pack
complet qui a prouvé son efficacité, surtout que ce sont les
concepteurs de PHP.



Oui mais il me semble que le fichiers bytecode générés par Zend Encoder
doivent être interprétés par Zend Optimizer côté serveur. Or cette
fonctionnalités n'est pas souvent proposé par les hébergeurs me semble-t-
il... Et quant aux plateformes "privées" (gérées par les clients eux-même)
les admins refuseront surement de l'installer juste pour me faire plaisir..

D'où la solution de l'obfuscation, qui elle ne nécessite rien côté serveur.

Entre temps j'ai testé POBS et ça a l'air de fonctionner : les scripts
tournent bien et sont réellement illisibles (sauf pour un dingue qui
disposerait de plus de temps pour les reconstituer que pour tout reécrire)


Avatar
m-e-
Zouplaz wrote:
Jean-Marc Molina - :


Zend optimiser ne peut pas être utilisé, je ne maitrise pas les


plateformes
d'hébergement (toutes différentes).

C'est à dire ? Zend est selon moi la meilleure solution. Un pack
complet qui a prouvé son efficacité, surtout que ce sont les
concepteurs de PHP.




Oui mais il me semble que le fichiers bytecode générés par Zend Encoder
doivent être interprétés par Zend Optimizer côté serveur. Or cette
fonctionnalités n'est pas souvent proposé par les hébergeurs me semble-t-
il... Et quant aux plateformes "privées" (gérées par les clients eux-même)
les admins refuseront surement de l'installer juste pour me faire plaisir..

D'où la solution de l'obfuscation, qui elle ne nécessite rien côté serveur.

Entre temps j'ai testé POBS et ça a l'air de fonctionner : les scripts
tournent bien et sont réellement illisibles (sauf pour un dingue qui
disposerait de plus de temps pour les reconstituer que pour tout reécrire)


Alternativement, tu pourras aussi peut-être utiliser des encodeurs en
chargeant dynamiquement l'extension de décodage, à l'aide de la fonction
dl. Cependant celle-ci ne fonctionnera certainement pas chez tous les
hébergeurs, et il faudra utiliser un "résolveur" comme indiqué dans le
commentaire du 18-Oct-2003 10:12 ici :
http://se2.php.net/manual/fr/function.dl.php.

Il y a par exemple en OS et gratuit : http://turck-mmcache.sourceforge.net/



Avatar
loufoque
Zouplaz wrote:

Oui mais il me semble que le fichiers bytecode générés par Zend Encoder
doivent être interprétés par Zend Optimizer côté serveur.


Si "il vous semble" pourquoi ne pas vérifier ?
À mon humble avis, ça ne nécessite rien de particulier.

Avatar
Armel FAUVEAU
Bonsoir,

Oui mais il me semble que le fichiers bytecode générés par Zend Encoder
doivent être interprétés par Zend Optimizer côté serveur.


Si "il vous semble" pourquoi ne pas vérifier ?
À mon humble avis, ça ne nécessite rien de particulier.


Il a raison. Les scripts "Zend Encodés" ont besoin de la présence du Zend
Optimizer sur la plate-forme cible afin de les digérer.

Armel.


Avatar
m-e-
"m-e-" a écrit dans le message de news: c641c9$77m5t$
Alternativement, tu pourras aussi peut-être utiliser des encodeurs en
chargeant dynamiquement l'extension de décodage, à l'aide de la fonction
dl. Cependant celle-ci ne fonctionnera certainement pas chez tous les
hébergeurs, et il faudra utiliser un "résolveur" comme indiqué dans le
commentaire du 18-Oct-2003 10:12 ici :
http://se2.php.net/manual/fr/function.dl.php.

Il y a par exemple en OS et gratuit : http://turck-mmcache.sourceforge.net/



et aussi APC :
http://pecl.php.net/package/APC
http://apc.communityconnect.com/index.html

Avatar
loufoque
Armel FAUVEAU wrote:

Il a raison. Les scripts "Zend Encodés" ont besoin de la présence du Zend
Optimizer sur la plate-forme cible afin de les digérer.



Pourtant, on peut génerer des bytecodes avec l'extension PECL bcompiler
sans nécessiter de truc particulier.

Avatar
Armel FAUVEAU
Bonjour,

Pourtant, on peut génerer des bytecodes avec l'extension PECL bcompiler
sans nécessiter de truc particulier.


Oui, et puis ? :)

La théorie de la compilation est un vaste sujet, qui plus est, fort éloigné
du thème de ce group. Mais retient, si tu ne le savais pas, que celle ci
comporte souvent plusieurs passes. Dés lors, il est fort probable que le
Zend Encoder produise un bytecode éloigné de celui de l'extension bcompiler
de PECL, le modus operandis de ces deux produits étant certainement
différent.

Armel.