Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Nouvelles versions de PHP : PHP 5.2.14 et PHP 5.3.3
Mettent l'accent sur la stabilité et la sécurité et corrigent des dizaines de bogues

Le , par Celira

80PARTAGES

8  0 
EDIT : 19/08/2011

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";
?>
Le principe est simple : si le script s'exécute jusqu'à la fin, votre système est protégé. Il est évidemment recommandé de fermer toutes les applications critiques avant de lancer ce script, histoire d'éviter de tout faire planter si il s'avère que votre système est sensible au bug.

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
    }
}
?>
Ce changement n'affecte pas les classes n'appartenant pas à un espace de nom, ni les migrations depuis PHP 5.2.x (les espaces de noms n'existant que depuis 5.3.0)

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de Thes32
Expert confirmé https://www.developpez.com
Le 19/08/2011 à 10:27
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.
3  0 
Avatar de Madfrix
Membre émérite https://www.developpez.com
Le 23/07/2010 à 12:43
Bonjour,

Citation Envoyé par Celira Voir le message

  • Correction de possibles pertes de donnés dans les fonctions strchr(), strstr(), substr(), chunk_split(), strtok(), addcslashes(), str_repeat(), trim().
Dans quelle situation pouvait-on rencontrer des pertes de données avec ces fonctions ? Un article existe-t-il recensant ces cas de figure ?

Merci
2  0 
Avatar de Oscar Hiboux
Membre averti https://www.developpez.com
Le 20/08/2010 à 15:17
Ça craint un peu ça, le code va perdre en élégance je trouve. C'est assez malpropre ces symboles contenant des __...
2  0 
Avatar de Celira
Modératrice https://www.developpez.com
Le 16/12/2010 à 18:39
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é)
2  0 
Avatar de Celira
Modératrice https://www.developpez.com
Le 17/12/2010 à 10:11
Lorsque tu définis ta classe en PHP 5.2+, le constructeur s'appelle __construct (on parle là de la méthode appelée lors de l'instanciation d'un objet, autrement dit un new MonObjet())
On a bien le concept objet, avec le constructeur, les méthodes, les attributs et tout, juste le constructeur ne porte pas le nom de la classe...
2  0 
Avatar de Seb33300
Membre émérite https://www.developpez.com
Le 23/07/2010 à 17:37
Citation Envoyé par Celira Voir le message
Ce changement n'affecte pas les classes n'appartenant pas à un espace de nom, ni les migrations depuis PHP 5.2.x (les espaces de noms n'existant que depuis 5.3.0)
Étrange comme décision
1  0 
Avatar de Chauve souris
Membre émérite https://www.developpez.com
Le 24/07/2010 à 21:40
qui n'était plus reconnu dans je ne sais plus quelle (dernière) version. Obligé de tout scanner pour remplacer 'localhost" par '127.0.0.1'
1  0 
Avatar de Celira
Modératrice https://www.developpez.com
Le 25/07/2010 à 11:51
Citation Envoyé par Madfrix Voir le message
Dans quelle situation pouvait-on rencontrer des pertes de données avec ces fonctions ? Un article existe-t-il recensant ces cas de figure ?
De ce que j'ai cru comprendre, il s'agissait d'une faille qui provoquait la diffusion de données si on forçait l'interruption de la fonction. Le terme original est "interruption array leak", si quelqu'un a une meilleure traduction/explication, je suis preneuse.

Citation Envoyé par Seb33300 Voir le message
Ce changement n'affecte pas les classes n'appartenant pas à un espace de nom, ni les migrations depuis PHP 5.2.x (les espaces de noms n'existant que depuis 5.3.0)
Étrange comme décision
On peut considérer ça comme une progression logique :
en PHP < 5, le constructeur était la méthode nommée comme la classe.
En PHP 5, jusqu'à 5.2, le constructeur était la méthode __construct (ou à défaut la méthode portant le nom de la classe)
En PHP 5.3, on ajoute les espaces de noms : les classe codées sans espace de noms suivent le fonctionnement de PHP 5.2, donc on leur laisse le fonctionnement d'origine et on continue à faire évoluer les classes espace-nommées.
1  0 
Avatar de tpruvot
Membre à l'essai https://www.developpez.com
Le 29/07/2010 à 16:34
Attention, la version 5.2.14 pose un probleme avec l'extension cURL php_curl.dll

Le chargement de PHP est beaucoup plus lent (2 a 3secondes) en ligne de commande (et je pense aussi en CGI)

Une solution pour corriger ca serait d'ajouter zlib.dll (v1.2.3) dans le répertoire systeme ou de PHP

Vous pouvez tester un simple "php -v" pour vous en rendre compte...

Le bug a été soumis (2 fois) mais fermé

Attention : Idem avec PHP 5.3.3
1  0 
Avatar de Seb33300
Membre émérite https://www.developpez.com
Le 31/07/2010 à 16:54
Citation Envoyé par Celira Voir le message
On peut considérer ça comme une progression logique :
en PHP < 5, le constructeur était la méthode nommée comme la classe.
En PHP 5, jusqu'à 5.2, le constructeur était la méthode __construct (ou à défaut la méthode portant le nom de la classe)
En PHP 5.3, on ajoute les espaces de noms : les classe codées sans espace de noms suivent le fonctionnement de PHP 5.2, donc on leur laisse le fonctionnement d'origine et on continue à faire évoluer les classes espace-nommées.
Oui. Doit on envisager du coup que les prochaines versions de PHP5 obligent à utiliser __construct tout le temps ?

Ou peut etre que PHP 6 ça sera du __construct uniquement ?
1  0