Proteger son code PHP [Résolu] - PHP - Programmation
Marsh Posté le 19-03-2011 à 13:39:47
http://www.zend.com/en/products/guard/
Marsh Posté le 19-03-2011 à 14:09:26
Merci Esox_ch, je suis egalement tombe sur ce produit en cherchant sur Google. Ca semble etre une alternative interessante, mais peut etre un peu lourde.
Avant de me lancer la dedans, j'aimerais voir si y a des solutions plus legere me permettant uniquement de proteger les cles et non l'ensemble du code.
Marsh Posté le 19-03-2011 à 14:18:44
Je viens de trouver cette extension PHP: BCompiler (http://www.php.net/manual/en/book.bcompiler.php). Ce semble etre une alternative interessante!
Marsh Posté le 19-03-2011 à 17:07:54
Oui sauf que
Citation : |
Jamais je n'utiliserais quelque chose du genre sur un serveur de prod
Marsh Posté le 21-03-2011 à 09:47:24
+1 pour esox_ch.
Je vais devoir trouver une autre maniere de faire ca alors. J'ai propose la solution Zend Guard a ma direction mais cet outil est beaucoup trop onereux pour notre projet.
Marsh Posté le 31-03-2011 à 03:59:13
Au final nous allons utiliser ionCube Encode, qui est un outils plus ou moins similaire a Zend Guard. Pour ce que ca interesse: http://www.ioncube.com/sa_encoder.php
Marsh Posté le 31-03-2011 à 07:33:25
un code compilé se décompile. Ca n'apporte pas grand chose de mon point de vu. Mais je vais quand même tester les encodeurs de PHP par curiosité, quand j'aurais un peu de temps.
Marsh Posté le 31-03-2011 à 09:39:41
philippe06 a écrit : un code compilé se décompile. Ca n'apporte pas grand chose de mon point de vu. Mais je vais quand même tester les encodeurs de PHP par curiosité, quand j'aurais un peu de temps. |
ça a quelle tête du bytecode PHP décompilé?
Marsh Posté le 31-03-2011 à 19:55:28
esox_ch a écrit : ça a quelle tête du bytecode PHP décompilé? |
J'ai déjà décompilé du Java compilé sans "obfuscation", c'est tout à fait utilisable.
J'ai "triché" à un TP noté de Master 2 ainsi: le prof a donné la solution sous forme d'executable, on devrait coder le truc plusieurs fois on observant à chaque fois une certaine "architecture" (c'était un cours sur les paradigmes en matière de programmation répartie / distribuée). Et bien j'ai pu reservir le code décompilé presque à l'identique, en renommant quelques noms de variables et en modifiant quelques prototypes de fonctions, c'est passé nickel.
Marsh Posté le 02-04-2011 à 14:09:06
Ah bon ... alors si t'as pu faire ça en java (qui, au passage, est livré avec tout ce qu'il faut pour le décompiler), il n'y a aucune raison que ce ne soit pas exactement pareil avec PHP passé dans un "compilateur" qui est là entre autres pour éviter qu'on voit la source ...
Bref, quand on sait pas, on se tait
Marsh Posté le 02-04-2011 à 18:33:02
Pas besoin d'un code source particulièrement clair pour trouver quelques clés de chiffrement. Et de toute façon, si il s'agit d'une application web comme c'est souvent le cas avec PHP, l'admin système peut aussi simplement regarder les logs d'acces générés pour avoir les identifiants "applicatifs", qui permettent logiquement d'accéder au contenu "sensible".
Marsh Posté le 06-04-2011 à 10:28:00
Donc si on suit ton raisonnement il n'y a aucun maniere de securiser son code?
Zend Guard & Ioncube Encoder sont pourtant vendu pour ca... arnaque?
Marsh Posté le 06-04-2011 à 14:05:36
Ca n'est pas une arnaque, ca complique une démarche de "reversing", ce qui a un intérêt si l'attaquant est faible techniquement, si le reversing présente peu d'intérêt ou si le code est suffisamment bien "mélangé" pour rendre la modification du code tellement pénible que l'attaquant va préférer réécrire le code lui même.
Simplement à partir du moment où tu ne contrôles pas l'environnement d'exécution du code, tu ne peux pas sécuriser totalement ton code. Typiquement, une protection par serial d'un logiciel sur PC est toujours cracké, avec plus ou moins de difficultés.
Et sur un serveur web c'est pire, comme je l'expliquais.
Marsh Posté le 06-04-2011 à 19:36:42
Sauf que ça n'a strictement rien à voir
Passer un code dans une moulinette parce que tu veux cacher la valeur par défaut d'une variable $secret, c'est pas une bonne idée parce que, là, philippe06 a raison => Tu peux te faire choper par derrière.
Si par contre, ce que tu veux protéger c'est tes algos/ton code, alors dans ce cas ces solutions vont faire ton bonheur. Ton bytecode pourra peut-être être décompilé (et même, je demande à voir), il ne sera pas identique à ton code de départ => Tes algos seront probablement sauvés.
Marsh Posté le 19-03-2011 à 13:23:19
Bonjour, je travaille actuellement sur un nouveau projet PHP traitant des donnees sensibles qui devront etre encrypter dans une base de donnees.
L'encryptage de ces donnees ne pose pas de probleme en soi, il y a des fonctions PHP pour ca (ie MCRYPT). Mais j'aimerais proteger les cles d'encryptage qui seront en claires dans le code PHP. Elles ne seront bien entendu pas accessibles de l'exterieur, mais l'application etant hebergee sur un serveur tierce, l'admin pourra y acceder.
Mis a part "compiler" mon code pour generer un code binaire je ne vois pas trop de solution. Je sais meme pas si c'est possible de "compiler" un code PHP.
Merci d'avance pour votre aide
Message édité par azel le 31-03-2011 à 04:33:58