vendredi 27 mai 2011

PHP : les nouvelles du front #420

10 jours viennent une nouvelle fois de s'écouler depuis mon précédent billet relatif au développement de PHP.

À l'époque, les échanges sur la liste de diffusion des contributeurs, internals@, commençait à se calmer, après une période d'effervescence déclenchée par la volonté affichée des contributeurs de sortir une nouvelle version du langage basée sur le trunk.

De vieux débats avaient alors ressuscité, notamment au sujet des annotations et du contrôle du type des arguments, ce qui avait entrainé des discussions parfois virulentes s'étalant sur plusieurs jours.

Des compromis avaient cependant finalement été trouvés, et internals@ semblait donc bien partie pour retrouver son calme relatif habituel.

J'avais alors supposé que ce n'était que temporaire, car Pierre Joye, l'un des développeurs principaux du langage, ne s'était pas exprimé puisqu'il était en vacances.

Il semble cependant que je me sois trompé, car son retour n'a pas pour l'instant relancé les débats, même si quelques indices me laisse supposer que des discussions sont en cours en dehors d'internals@.

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