Archive

Articles taggués ‘pourquoi migrer’

Pourquoi migrer vers PHP 5 ?

26/08/2010 Comments off

Un peu d’histoire

PHP est un langage de script orienté web, et massivement utilisé avec le serveur web apache et la base de données MySQL ; cet ensemble de technologies est connu sous le nom de AMP ou lorsqu’il est basé sur un système d’exploitation à base Linux, LAMP.

C’est la version 3 qui a amorcé la popularité de PHP, mais c’est à la version 4 qu’il a réellement été adopté en masse. Ces versions sorties en 1998 et 2000 ont aujourd’hui plus de 10ans, mais sont encore très utilisées, en particulier la 4. Certes cette dernière a subi de nombreuses mises à jour jusqu’en Août 2008 avec la version 4.4.9 mais elle n’est aujourd’hui plus maintenue officiellement (http://www.php.net/archive/2007.php#2007-07-13-1), et la dernière version date donc de plus de deux ans, une « éternité » en informatique.

PHP 5 est né le 13 juillet 2004 et a introduit la notion d’objet, cette version est mise à jour régulièrement. La version 5.2 a été considérée par la communauté comme une version mature (2006) et une version 5.2.14 est d’ailleur sortie il y a quelques semaines . La version 5.2.x est donc actuellement la version recommandée par de nombreux experts.

Plus récemment, l’équipe de PHP a sorti la version 5.3 qui apporte de nombreuses nouveautés, en particulier les espaces de nommage ou encore les archives PHP (phar). Cette dernière version signe aussi l’arrêt de la compatibilité avec PHP4. Et oui, car jusqu’à la branche 5.2.x, PHP permettait d’exécuter des applications PHP4 avec PHP5, mais avec PHP 5.3 ceci est révolu.

PHP 5 une maturité accrue

Il faut dire que les spécialistes attendaient cela depuis un moment. En effet PHP4 est moins rapide que PHP5, ensuite il utilise une ancienne version du langage qui permet des directives qui lorsqu’elles sont mal utilisées provoquent des failles de sécurité (le fameux « register globals » par exemple). C’est bien là tout l’enjeu du passage à PHP5, mais au delà de failles de sécurité et d’options de PHP mal utilisées, il y a la façon de programmer. Je l’ai dit tout à l’heure PHP4 à eu un franc succès, et de nombreux développeurs se sont lancés dans la création de sites internet, il ne faut pas oublier qu’à ce moment-là on était au début des années 2000 et qu’Internet était en plein essor ; beaucoup d’entreprises moyennes et grandes voulaient avoir une visibilité sur internet, c’était aussi le début du e-commerce et de la démocratisation des achats en ligne.

Un manque de formation à la sécurité et à PHP

Mais les développeurs ne sont pas réellement formés à ce genre de langage ou du moins aux types d’attaques et de failles auxquelles les sites et programmes peuvent être exposés. On citera par exemple la technique dite « SQL Injection » dont le célèbre site « thepiratebay.org » a été la cible il y a quelques semaines (http://www.pcinpact.com/actu/news/58165-the-pirate-bay-pirate-donnees-utilisateurs-e.htm), ou encore cette université indienne (Sikkim Manipal University http://portal.smude.edu.in/ , http://seclists.org/fulldisclosure/2010/Jul/258).

PHP 5 propose PDO qui permet non seulement de s’abstraire du type de base de données (mysql, sqlite, postgresql…), mais surtout incorpore un système d’échappement permettant d’éviter ce genre d’attaques.

Avec PHP 5 le style de programmation a évolué, le langage PHP s’est nettement inspiré de Java, et la notion d’objet permet au développeur de concevoir son site ou son application, comme il le ferait pour une application dite « lourde ». Cela apporte normalement un gage d’évolutivité incontestable et évite le bien connu « plat de spaghettis » (http://fr.wikipedia.org/wiki/Syndrome_du_plat_de_spaghettis).

Un langage mort encore très utilisé

On l’a vu PHP 4 est un langage mort depuis plusieurs années (2007) et pourtant de nombreuses applications et sites internet continuent à se baser dessus, citons par exemple osCommerce (http://www.oscommerce.com/), outil permettant de déployer un site de vente en ligne rapidement. De plus les applications PHP4 sont souvent très mal programmées exposant les sites et applications à des failles de sécurité importantes. Enfin PHP 5.3 signe la fin de la compatibilité avec PHP4.

Il est donc nécessaire, presque vital maintenant, de migrer les applications PHP4 vers la version PHP5. Il existe pour cela deux approches que nous allons exposer juste après.

Rafistoler ou repenser

La première consiste à rafistoler le code PHP4 pour le rendre compatible PHP5, c’est une tâche qui nécessitera de comprendre le fonctionnement de l’application et de corriger le code, c’est un travail long, d’analyse et d’optimisation, cela pourra convenir pour un site ou une application de moins de 10 000 lignes de code, mais c’est une solution que je qualifierai de temporaire.

La deuxième solution est plus radicale et consiste à reprendre les choses entièrement, d’abord en évaluant les besoins, les applications PHP4 ayant logiquement au moins 5 ans, les besoins ont sans doute changé. Ensuite parce que refaire tout depuis le début permet de concevoir l’application correctement en utilisant des méthodes de modélisation (UML) et de programmer en Objet. Enfin il est paradoxalement plus rentable de tout recommencer depuis zéro, le rafistolage peut prendre plus de temps que de tout refaire pour des projets dépassant 10 000 lignes de code et surtout ne pas être sur d’aboutir à quelque chose de viable, d’où les couts supplémentaires « cachés ».

La programmation objet offre des avantages indéniables par rapport à la programmation procédurale, le code est mieux ordonné, on peut plus facilement représenter l’application sous forme de schémas, et cela permet de rationaliser l’application. Cela passe par une phase d’étude qui permettra de déterminer les besoins et de réaliser diverses représentations telles que les bien connus diagramme de classe ou encore cas d’utilisations.

PHP 5 offre de nombreuses fonctionnalités pour la programmation objet (SPL) encore une fois inspirées du monde Java.

Urgent et vital, mais couteux

Il est donc urgent de migrer les applications PHP4 vers des versions PHP5 plus robustes, mieux pensées, sécurisées et plus facilement évolutives. Cela a évidement un cout, mais il ne sera pas possible de repousser cette migration indéfiniment. De plus PHP4 n’est plus maintenu, les éventuelles failles de sécurité ne sont donc plus corrigées, et continuer à l’utiliser implique une prise de risque loin d’être négligeable. Le code est généralement obsolète et mal conçu ce qui pose des problèmes pour son évolution. PHP5 offre des avantages non négligeables (objets, SPL, PDO) et une sécurité accrue. Il est clair que c’est un investissement, si votre site est un site vitrine, cela pourra peut-être encore attendre un tout petit peu, mais pensez à prévoir un budget pour le refaire à moyen terme et surtout assurez-vous que votre prestataire a les compétences techniques pour réaliser un site bien conçu. Si votre application est du type intranet/extranet et que des données y sont traitées, il est urgent de migrer vers PHP5, assurez-vous que votre prestataire informatique a de l’expérience dans la conception et dans la réalisation d’une telle application, car même en PHP5 il est possible de faire du mauvais travail, c’est donc primordial de s’assurer de votre prestataire dans la réalisation d’applications bien conçues et sécurisée.