<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
><channel><title>Zerbynet &#187; php</title> <atom:link href="http://www.zerbynet.fr/tag/php/feed" rel="self" type="application/rss+xml" /><link>http://www.zerbynet.fr</link> <description>Un blog parmi tant d&#039;autres</description> <lastBuildDate>Sun, 14 Mar 2010 19:55:25 +0000</lastBuildDate> <generator>http://wordpress.org/?v=2.9.2</generator> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <atom:link rel='hub' href='http://www.zerbynet.fr/?pushpress=hub'/> <item><title>Protéger du code PHP (obfuscation, byte code)</title><link>http://www.zerbynet.fr/proteger-du-code-php-obfuscation-byte-code</link> <comments>http://www.zerbynet.fr/proteger-du-code-php-obfuscation-byte-code#comments</comments> <pubDate>Mon, 11 May 2009 22:47:08 +0000</pubDate> <dc:creator>Manu</dc:creator> <category><![CDATA[Développement]]></category> <category><![CDATA[bytecode]]></category> <category><![CDATA[obfuscation]]></category> <category><![CDATA[php]]></category><guid
isPermaLink="false">http://www.zerbynet.fr/?p=136</guid> <description><![CDATA[Le problème d&#8217;un langage comme le PHP, c&#8217;est que le code source est intégralement disponible. Lorsque l&#8217;on est maître du serveur où sont hébergés les scripts, tout va bien, mais sinon comment faire pour protéger le code contre la modification ou la copie abusive.
Il existe actuellement 2 méthodes pour cela :l&#8217;obfuscation qui consiste à [...]]]></description> <content:encoded><![CDATA[<p>Le problème d&#8217;un langage comme le PHP, c&#8217;est que le code source est intégralement disponible. Lorsque l&#8217;on est maître du serveur où sont hébergés les scripts, tout va bien, mais sinon comment faire pour protéger le code contre la modification ou la copie abusive.<br
/> Il existe actuellement 2 méthodes pour cela :</p><ul><li> l&#8217;obfuscation qui consiste à rendre illisible le code en supprimant les espaces, les commentaires et en renommant les variables/fonctions.</li></ul><ul><li> transformer le code PHP en bytecode (fichier binaire exécuté par le moteur PHP)</li></ul><div
class="wp-caption aligncenter" style="width: 565px"><img
title="Exemple dobfuscation PHP" src="http://www.zerbynet.fr/wp-content/uploads/2009/05/obfuscation.png" alt="Exemple dobfuscation PHP" width="555" height="480" /><p
class="wp-caption-text">Exemple d&#39;obfuscation PHP</p></div><p><span
style="text-decoration: line-through;">La seule technique vraiment valable est la deuxième car elle est réellement irréversible</span> (<em>voir commentaire</em>). Par contre  même si l&#8217;on ne voit pas le code, certaines données comme les chaînes de caractères sont en clair, mais la pluspart des encodeurs bytecode font aussi de l&#8217;obfuscation et dans ce cas pas de problèmes.</p><p>Il faut aussi savoir que pour interpréter du bytecode sur un serveur, il est obligatoire d&#8217;installer une extension php, et il faut donc avoir la main sur les fichiers de configuration du serveur (php.ini). Par conséquent cette solution n&#8217;est pas valable sur des hébergements mutualisés, à moins que l&#8217;hébergeur consente à le faire. (par exemple OVH propose Zend Optimizer et Ioncube sur ses mutu, à activer via htaccess).</p><p>Pour d&#8217;autres hébergeurs ne proposant pas ces fonctionalités, l&#8217;obfuscation peut néanmoins dépanner car le code reste tout de même assez dur à déchiffrer (voir la capture au dessus) même si ce n&#8217;est pas impossible.</p><p>A noter, il existe aussi des solution hybrides, mêlant obfuscation et chiffrage mais elles ne sont pas plus sures pour autant car il faut bien déchiffrer pour pouvoir interpréter le code PHP et donc on peut récupérer le code avant son exécution. De plus l&#8217;étape de déchiffrement est couteuse en temps de calcul et imposera au serveur une charge supplémentaire.</p><p>A l&#8217;inverse, les solutions à base de bytecode sont plus rapides à interpréter que du PHP normal.</p><p>Pour conclure cet article, je vous jette pêlemêle quelques liens que j&#8217;ai pu glaner. Si vous décidez d&#8217;adopter un de ceux-ci, faites attention car certains datent un peu (pas de support PHP5 par exemple) et d&#8217;autres sont très chers, mais ça c&#8217;est une autre histoire ;)</p><ul><li> <a
href="http://www.ioncube.com/sa_encoder.php" target="_blank">http://www.ioncube.com/sa_encoder.php</a></li><li> <a
href="http://us2.php.net/manual/fr/ref.bcompiler.php" target="_blank">http://us2.php.net/manual/fr/ref.bcompiler.php</a></li><li> <a
href="http://www.sourceguardian.com/index.html" target="_blank">http://www.sourceguardian.com/index.html</a></li><li> <a
href="http://www.semdesigns.com/index.html" target="_blank">http://www.semdesigns.com/index.html</a></li><li> <a
href="http://www.nusphere.com/products/nucoder.htm" target="_blank">http://www.nusphere.com/products/nucoder.htm</a></li><li> <a
href="http://www.zend.com/fr/products/guard/" target="_blank">http://www.zend.com/fr/products/guard/</a></li><li> <a
href="http://www.rssoftlab.com/phpenc.php">http://www.rssoftlab.com/phpenc.php</a></li><li> <a
href="http://www.raizlabs.com/software/phpobfuscator/" target="_blank">http://www.raizlabs.com/software/phpobfuscator/</a></li><li> <a
href="http://www.truebug.com" target="_blank">http://www.truebug.com</a></li><li> <a
href="http://www.phpshield.com/" target="_blank">http://www.phpshield.com/</a></li><li> <a
href="http://www.sourcecop.com" target="_blank">http://www.sourcecop.com</a></li><li> <a
href="http://www.byterun.com/" target="_blank">http://www.byterun.com/</a></li><li> <a
href="http://pobs.mywalhalla.net/" target="_blank">http://pobs.mywalhalla.net/</a></li><li> <a
href="http://phplockit.com/" target="_blank">http://phplockit.com/</a></li><li> <a
href="http://www.gridinsoft.com/" target="_blank">http://www.gridinsoft.com/</a></li><li> <a
href="http://www.codelock.co.nz/" target="_blank">http://www.codelock.co.nz/</a></li></ul>]]></content:encoded> <wfw:commentRss>http://www.zerbynet.fr/proteger-du-code-php-obfuscation-byte-code/feed</wfw:commentRss> <slash:comments>4</slash:comments> </item> </channel> </rss>
<!-- This site's performance optimized by W3 Total Cache. Dramatically improve the speed and reliability of your blog!

Learn more about our WordPress Plugins: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced) (user agent is rejected)
Database Caching 14/19 queries in 0.014 seconds using disk

Served from: localhost.localdomain @ 2010-08-01 10:46:58 -->