L'équipe de développement de PHP vient d'annoncer la sortie de la version 5.3.7.
Cette nouvelle version renforce la stabilité au langage et apporte plusieurs améliorations et corrections liés sur la sécurité avec plus de 90 correctifs dont
- la correction liée à une vulnérabilité (bugs #54939) de la superglobale $_FILE['filename'] pouvant être victime d'une injection,
- l'ajout d'une nouvelle constate PHP_MANDIR indiquant l'emplacement des manpages windows
- L'ajout d'un troisième argument pour les fonctions filter_var_array() et filter_input_array() permettant la désactivation des de l'addition éléments vides
- Les versions embarqués des bibliothèques sqlite3 et PCRE et ont été mis à niveau sur les versions 3.7.7.1 et 8.12 respectivement
- et plein d'autres qui vous pouvez trouver dans le changelog.
Les utilisateurs Windows devront se rappeler que les binaires VC6 n'étant plus disponible, ils devront recourir aux exécutables Apache fournis par Apache Lounge pour utiliser le SAPI Apache.
_________________________________________________________________
EDIT : 19/03/2011
Nouvelle version de PHP 5.3.6 et l'abandon du support de la branche 5.2
Depuis ce Jeudi, l'équipe de développement de PHP a annoncé la sortie de la version 5.3.6.
Cette version apporte plus de 60 correctifs et certains ajouts dont :
- Correction d'une vulnérabilité dans les archives PHP aka Phar
- un overflow sur les entiers avec la fonction shmop_read
- Correction d'un crash sur certains tags EXIF
- Correction d'un défaut de segment sur les archives vides avec ZipArchive
- Correction des fonctions isset et empty qui produisaient des erreurs d'exécution non fondés
- Correction d'une régression introduite dans la version 5.3.4 dans la fonction open_basedir
- Mise à jour de Sqlite 3 vers la version 3.7.4
- Mise à jour de la librairie PCRE vers la version 8.11
- Ajout de la possibilité de connexion au protocole HTTPS via proxy avec une authentification basique en utilisant stream_context et l'entête HTTP Proxy-Authorization
- Ajout des options supplémentaires à la fonction debug_backtrace
Tous les changements pour cette version sont disponibles dans le changelog.
Cependant cette sortie annonce également l'abandon du support de la branche 5.2, les utilisateurs de windows devront se contenter des exécutables compilés avec Visual C++ 9 car l'équipe de développement a mit fin avec la compilation des binaires sous VC 6.
_________________________________________________________________
EDIT : 07/01/2010
Nouvelles versions de PHP : 5.3.5 et 5.2.17
Suite à la découverte d'un bug majeur permettant les attaques par Déni de Service, PHP vient de sortir une version corrigeant ce bug. Tous les utilisateurs sont vivement invités à migrer leurs serveurs PHP vers ces nouvelles versions. Pour tester si votre système est sensible à ce bug, PHP.net propose le script de test suivant :
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | <?php /* +----------------------------------------------------------------------+ | PHP Version 5 | +----------------------------------------------------------------------+ | Copyright (c) 2011 The PHP Group | +----------------------------------------------------------------------+ | This source file is subject to version 3.01 of the PHP license, | | that is bundled with this package in the file LICENSE, and is | | available through the world-wide-web at the following url: | | http://www.php.net/license/3_01.txt | | If you did not receive a copy of the PHP license and are unable to | | obtain it through the world-wide-web, please send a note to | | license@php.net so we can mail you a copy immediately. | +----------------------------------------------------------------------+ | Author: Johannes Schlueter <johannes@php.net> | +----------------------------------------------------------------------+ */ if (PHP_SAPI != 'cli') { die("Please run this test from CLI!\n"); } ini_set('display_errors', 1); ini_set('output_buffering', 0); error_reporting(-1); if (!ini_get('safe_mode')) { set_time_limit(1); } echo "Testing float behaviour. If this script hangs or terminates with an error ". "message due to maximum execution time limit being reached, you should ". "update your PHP installation asap!\n"; echo "For more information refer to <http://bugs.php.net/53632>.\n"; $d = (double)"2.2250738585072011e-308"; echo "Your system seems to be safe.\n"; ?> |
On notera au passage que, bien que le support de PHP 5.2 soit théoriquement théoriquement, une version de correction est également disponible pour PHP 5.2 pour des raisons sécuritaires.
_____________________________________________________________
EDIT du 16/12/2010
Nouvelle version de PHP 5.2 : 5.2.16
Moins d'une semaine après la sortie de PHP 5.2.15, sortie d'une nouvelle version de PHP 5.2.
Le but de cette version est essentiellement de corriger une régression sur la fonction open_basedir, introduite dans la version 5.2.15, ainsi qu'une correction sur PDO::pgsql.
Celles et ceux qui ont déjà migrés leur serveur vers 5.2.15 et qui utilisent la fonction open_basedir sont très fortement encouragés à mettre en place la nouvelle version 5.2.16 (ou bien sûr à passer à PHP 5.3, étant donné que le support de PHP 5.2 est terminé)
Nouvelle version de PHP 5.3 : 5.3.4
Cette version est une version de maintenance et corrige un nombre important de bugs. Notamment :
- Correction de crash sur l'extraction de zip
- Correction du comportement de la fonction extract avec l'option EXTR_OVERWRITE
- Correction d'une faille dans la fonction open_basedir
- Ajout d'un 3e paramètre à la fonction get_html_translation_table, pour le choix de l'encodage
La liste complète des changements dans la version 5.3.4
Nouvelle version de PHP 5.2 : PHP 5.2.15
Comme indiqué lors de la précédente version, cette version se concentre sur la correction de bugs de sécurité et la stabilité/ Notamment :
- Correction de crash sur l'extraction de zip
- Correction du comportement de la fonction extract avec l'option EXTR_OVERWRITE
- Correction d'une faille dans la fonction open_basedir
- Correction de la fonction array_diff (l'exécution était 3000 fois plus lente que dans PHP 5.2.4)
La liste complète des changements dans cette version
Cette version est la dernière version de PHP 5.2, le support de maintenance étant maintenant terminé. Les utilisateurs de PHP 5.2 sont vivement encouragés à migrer vers PHP 5.3. (guide de migration disponible sur PHP.net )
____________________________________________
Nouvelle Version de PHP 5.2 : PHP 5.2.14
Cette version met l'accent sur la stabilité et la sécurité, en corrigeant plus de 60bugs. Notamment :
- Réécriture de var_export, pour empêcher une possible divulgation de données en cas d'erreur
- Correction d'une possible corruption de mémoire dans substr_replace
- Correction de possibles pertes de données dans les fonctions strchr(), strstr(), substr(), chunk_split(), strtok(), addcslashes(), str_repeat(), trim().
- Serialisation de variables de session
- Mise à jour de la bibliothèque PCRE
- Mise à jour des données de fuseaux horaires (timezone)
La liste complète des modifications de PHP 5.2.14
Cette version est la dernière version supportée pour PHP 5.2. La maintenance active de bugs ne sera plus assurée, seuls des patches de sécurité seront éventuellement appliqués au cas par cas.
Les utilisateurs de PHP sont vivement encouragés à passer à PHP 5.3. Pour cela PHP.net met à disposition un guide de migration
Nouvelle version de PHP 5.3 : PHP 5.3.3
Cette version corrige plus de 100 bugs, dont certains liés à la sécurité. Notamment :
- Réécriture de var_export, pour empêcher une possible divulgation de données en cas d'erreur
- Correction de possibles corruptions de mémoire sur un certain nombre de fonction, dont parse_str, substr_replace, addcslashes, ArrayObjet::uasort
- Correction sur la sérialisation de variables de session
- Mise à jour de la bibliothèque sqlite
- Mise à jour de la bibliothèque PCRE
- Ajout de FastCGI Process Manager (FPM) SAPI
- Ajout d'un support de filtre de flux dans mcrypt
La liste complète des modifications de PHP 5.3.3
Attention, si vous utilisiez déjà PHP 5.3.x, dans un espace de nom, la méthode d'une classe portant le même nom que cette classe ne sera plus considérée comme constructeur.
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 | <?php namespace Foo; class Bar { public function Bar() { // traitée comme constructeur de la classe en PHP 5.3.x < 5.3.3 // traitée comme une méthode en PHP 5.3.3 } } ?> |