jeudi 8 septembre 2011

Mettons fin au bashing, voici les faits !

Ce n'est un secret pour personne, la version 5.3.7 de PHP a été très loin d'être une réussite.

En effet, suite à la découverte d'un bug dans la fonction crypt(), elle a été suivie cinq jours après sa sortie par la version 5.3.8.

Les choses auraient put en rester là, mais certains esprits chagrins ont trouvé là l'occasion de mette en lumière le manque de professionnalisme des développeurs de PHP.

Lire la suite

mardi 1 février 2011

À propos du bug 53632 de PHP

Il y a maintenant quelques semaines, Rick Regan a découvert un bug assez méchant dans PHP, qui a reçu l'identifiant #53632 et qui est également connu sous le nom de The PHP strtod() denial of service bug.

En étudiant la façon dont le langage gère les nombres à virgule flottante, et plus particulièrement ceux aux alentours de zéro, il a réussi à faire partir le Zend Engine, le moteur qui propulse PHP, dans une boucle infinie à l'aide d'une simple affectation de variable, de la manière suivante :

<?php $d = 2.2250738585072011e-308; ?>

À l'époque, il était donc tout à fait possible de bloquer un serveur web qui utilise PHP en injectant, via par exemple $_GET, cette fameuse valeur.

Évidemment, suite au rapport de bug, ce dernier été corrigé très rapidement, grâce aux versions 5.2.17 et 5.3.5 du langage, que je ne peux que vous encourager à utiliser si vous n'avez pas encore fait la mise à jour.

Et encore plus évidemment, beaucoup de gens ont encore dit que, décidément, PHP était vraiment un langage de merde conçu par des abrutis et que tout les développeurs du monde devraient arrêter de l'utiliser au profit de vrais langages tel que Python, Ruby ou bien encore Java.

Sauf qu'en l'occurrence, ces gens auraient mieux fait de se taire...

Lire la suite