PHP 5.2.2 et PHP 4.4.7 publiés

le 04/05/2007 à 22:03
PHP 5.2.2 et PHP 4.4.7 publiés
L'équipe de développement de PHP annonce la disponibilité immédiate de PHP 5.2.2 et de PHP 4.4.7. Ces versions sont des améliorations majeures de la stabilité et de la sécurité des branches 5.x et 4.4.x, et tous les utilisateurs sont chaudement encouragés à passer à ces versions aussitôt que possible.

La majorité des problèmes de sécurités sont locaux, mais dans certaines circonstances, du code spécifique peut le déclencher à distance. Il est recommandé de changer de version si votre code utilise ces versions et fonctions qui présentent des faiblesses.

Pour les utilisateurs de PHP 5.2 qui viennent de PHP 5.0 et PHP 5.1, un guide de mise à jour est disponible dans la documentation, détaillant les différence entre ces versions et PHP 5.2.2.

14 corrections de sécurité en PHP 5.2.2 et 11 en PHP 4.4.7.
PHP 5.2.2 et 4.4.7 : GD, mail, array, session, XML-RPC, super-global, open_basedir, FTP.
PHP 5.2.2 : mail, filter, serialize, soap, strings
PHP 4.4.7 : XSS en phpinfo()

- L'annonce de PHP 5.2.2
- L'annonce de PHP 4.4.7

A lire également

L'équipe de développement de PHP annonce la publication immédiate de PHP 5.2.4. Cette version met l'accent sur la stabilité de la branche PHP 5.2, avec la correction de 120 problèmes et la résolution de plusieurs problèmes de sécurité mineures. Tous les utilisateurs sont encouragés à passer à cette version.

Amélioration de sécurité pour PHP 5.2.4 :

- Exception dans wordwrap() (par Mattias Bengtsson)
- Dépassement de capacité dans l'extension GD (par Mattias Bengtsson)
- Taille calculée par chunk_split() (par Gerhard Wagner)
- Dépassement de capacité dans str[c]spn(). (par Stanislav Malyshev)
- Correction de money_format() qui accepte un seul %i ou %n. (par Stanislav Malyshev)
- Correction de l'interruption de zend_alter_ini_entry() par memory_limit (par Stefan Esser)
- Correction de l'option INFILE LOCAL avec les extensions MySQL pour qu'elle soit désactivée quand open_basedir ou safe_mode sont actives. (par Stanislav Malyshev)
- session.save_path et error_log satisfont maintenant open_basedir et safe_mode (CVE-2007-3378) (par Maksymilian Arciemowicz)
- Correction de glob() sur win32 (CVE-2007-3806) (par shinnai)
- Dépassement de capacité possible dans php_openssl_make_REQ (par zatanzlatan at hotbrev dot com)
- Correction d'un contournement de open_basedir dans glob() (par dr at peytz dot dk)
- Correction d'un contournement de open_basedir avec les sessions et un lien symbolique(par c dot i dot morris at durham dot ac dot uk)
- Amélioration de la correction de MOPB-03-2007.
- Correction de CVE-2007-2872.

Améliorations de PHP 5.2.4

- Mise à jour de PCRE en 7.2
- Ajout de la persistance à pdo_pgsql.
- Correction de oci8 et PDO_OCI pour fonctionner avec Oracle 11g.
- Correction du bogue #41831 (pdo_sqlite converti les ressources en chaînes)
- Correction du bogue #41770 (SSL: problème de protocole à cause de buffers)
- Correction du bogue #41713 (Consommation de mémoire persistant sur win32 depuis PHP 5.2)

Pour les utilisateurs qui passent de PHP 5.0 à PHP 5.1, un guide de mise à jour est disponible en ligne.

- PHP.net
- guide de migration PHP 5.2
- Changelog PHP 5.2.4
- Téléchargement PHP 5.2.4
L'option -a de PHP-CLI (en ligne de commande), active le mode interactif de PHP. C'est un mode où les instructions seront exécutées au fur et à mesure que vous les tapez.


$ php -a
Interactive mode enabled

html
<?php
html
echo phpversion();
5.2.6 ?>

Notez que c'est difficile à comprendre sur l'exemple ci-dessus : PHP commence par produire les deux premières lignes. Puis, j'ai tapé html, qui est affiché une deuxième fois plus bas, quand PHP décide d'exécuter le code HTML initial. En effet, le mode interactif se comporte comme PHP, et affiche directement le texte qui n'est pas dans une balise.

Ensuite, je met des commandes complètes (ici, PHPversion()), qui est affichée immédiatement après. Au final, je ferme la balise.

Ce mode est pratique si vous voulez tester une fonction ou un bout de code PHP. En en discutant avec Chris Hartjes (si vous avez l'occasion, allez le voir en conférence), ce mode est très pratique pour mettre en place les tests unitaires : il l'a fait pour cakePHP.

Imaginez, vous avez programmé une fonction (ou une classe, ou une bibliothèque, etc). Pour la vérifier, vous l'exécutez avec le mode interactif, et vous vérifiez manuellement que tout se passe bien. Par exemple, avec une fonction qui teste si un nombre est premier (retourne 0 si oui, et un facteur sinon), on pourrait avoir ceci :

<?php
include('prime.php');
print is_prime(4);
4
print is_prime(7);
0
print is_prime(13);
0
print is_prime(49);
0
?>

Je viens de tester 4 valeurs, et j'ai identifié un bug (49). Idéalement, je vais retourner dans mon code, le corriger. Mais cette liste de tests manuels pourrait (devrait) être gardée pour être rejouée la prochaine fois ! Pourquoi ne pourrait-elle pas être enregistrée, pour que je gagne du temps plus tard? Et pour être publié avec mon code, dans un format plus standard (phpunit, simpletest) ? On aurait ainsi une méthode simple pour capter des tests unitaires, et capitaliser sur cette masse immense de tests manuels, qui sont perdus après chaque exécution.

- Testing PHP with the interactive shell
- Screencast: Interactive Console for CakePHP

Commentaires

Ecrire

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours