Python 2 Fin de vie menace la sécurité

La fin de vie de Python 2 approche à grands pas et le National Cyber ​​Security Center du Royaume-Uni a lancé un avertissement aux développeurs qui s’attachent toujours à Python 2 contre les risques auxquels ils seront exposés du fait de l’absence de corrections de bogues ou de mises à jour de sécurité.

gvrpycon "src =" http://www.i-programmer.info/images/stories/News/2014/Apr/A/gvrpycon.jpg "style =" display: block; marge gauche: auto; margin-right: auto; "width =" 320 "height =" 257

À la grande consternation des adhérents à Python 3, Python 2 a été suspendu par Guido van Rossum en 2014. Tout en étant convaincu qu’il n’y aurait pas de Python 2.8 et qu’il était temps de passer à Python 3.4, il a annoncé à PyCon a indiqué qu’au lieu d’être confronté à la fin de la prise en charge prévue en 2015, Python 2 bénéficierait d’une période supplémentaire de 5 ans jusqu’en 2020. C’est pour donner le temps à de nombreuses bibliothèques sur lesquelles les projets existants se sont appuyés d’ajouter une prise en charge de Python 3.

En mars 2018, il avait été convenu que Python 2.7, la seule version encore prise en charge, serait complètement mort le 1er janvier 2020, ce qui signifie qu’aucune mise à jour, pas même les correctifs de sécurité à la source, ne seraient disponibles après cette date. Et si vous pensez que 2020 est encore loin, vous avez tort:

python2eolbaner

Face à cette échéance imminente, le Centre national de la cybersécurité (NCSC) a répété le message “Il est temps de déplacer Python 3” en ces termes:

Donc, si vous utilisez toujours la version 2.x, il est temps de porter votre code sur Python 3. Si vous continuez à utiliser des modules non pris en charge, vous risquez la sécurité de votre organisation et de vos données, car des vulnérabilités apparaîtront tôt ou tard. est la fixation.

Étant donné que Python 3.0 a été publié en décembre 2008 et qu’il n’était pas rétrocompatible avec la version 2.x, ce conseil semble être attendu depuis longtemps. Mais la communauté Python a beaucoup résisté au changement. Il a fallu quatre ans, jusqu’en janvier 2013, soit 4 ans, pour que le nombre de téléchargements mensuels du dernier Python 3 dépasse celui de son équivalent Python 2.

Le principal obstacle au passage du code existant de Python 2 à Python 3 résidait dans leurs dépendances à des packages tiers. Au moment de l’extension EOL de Python 2, il existait encore un nombre important de bibliothèques largement utilisées qui ne prenaient pas en charge Python 3.x. Cette situation a été surveillée par sur un site Web initialement appelé Python 3 Wall of Shame, qui affiche en rouge les noms des packages PyPi non compatibles Python utilisant du vert pour ceux qui l’ont fait. Il a été renommé Mur des superpuissances Python 3, de plus en plus d’entrées vertes remplaçant les entrées rouges et, après avoir atteint plus de 95% de compatibilité, ont arrêté l’exercice en avril 2018.

Malgré cela, certains utilisateurs restent attachés à Python 2.x. Les chiffres de l’enquête sur les développeurs Python 2018 menée conjointement par Python Software Foundation et JetBrains.show montrent que près d’un cinquième des développeurs Python engagés dans DevOps sont bloqués ici, avec presque autant de développeurs Web dans la même situation. Les perspectives sont bien meilleures pour Data Science, où seulement 10% doivent encore être mis à niveau.

jbpython3devs

Ces chiffres semblent plutôt rassurants, mais les statistiques de juin 2019 sur les téléchargements de paquets populaires à partir de l’index des paquets Python rassemblés par le NCSC révèlent un tableau différent:

pypidownloads

Les quatre des packages énumérés en haut de la table avaient plus de téléchargements pour Python 2 que pour Python 3 et même lorsque Python 3 est plus populaire, une proportion importante reste pour Python 2. Pour forcer cette situation à améliorer de nombreux projets, notamment NumPy, Requests et TensorFlow se sont engagés à abandonner le support de la version 2.x d’ici 2020 et certains l’ont déjà fait. Comme le fait remarquer le NCSC,

Cela signifie que si vous souhaitez utiliser les dernières fonctionnalités de vos modules préférés, vous devez utiliser Python 3. Plus vous attendez longtemps pour mettre à jour, plus les versions Python 3 de vos dépendances auront changé, et plus difficile mise à jour deviendra.

Le NCSC a également soulevé un autre problème: le fait de ne pas passer à autre chose retarde le développement d’autres développeurs, en déclarant:

Si vous conservez une bibliothèque dont dépendent d’autres développeurs, vous risquez peut-être de l’empêcher de se mettre à jour en 3. En retenant les autres développeurs, vous augmentez indirectement et probablement involontairement les risques de sécurité des autres.

Il contient également des recommandations pour vous aider dans le processus de portage du code Python 2.x vers Python 3, en mentionnant:

Puis-je utiliser Python 3 – un programme qui vérifie les dépendances de votre projet pour voir si elles vous empêchent d’utiliser Python 3.

2to3 – un programme Python, généralement installé avec un interpréteur Python en tant que script, qui tente de convertir le code source 2.x en 3. Notez que ce n’est pas parfait, il se peut que vous deviez quand même réparer certains codes manuellement.

Python 3 offre de nombreuses fonctionnalités pour récompenser les personnes qui effectuent le déménagement. Ce faisant, vous aurez également la possibilité d’améliorer la gestion de vos dépendances logicielles et de réduire au minimum vos dettes de sécurité.

Dropbox a migré sa base de code vers Python 3 en 2018 et a donné des détails sur l’expérience acquise article de blog. Le déménagement était motivé par le fait que, à l’âge de Python 2, l’ensemble des chaînes d’outils initialement compatibles pour son déploiement était en grande partie devenu obsolète, ce qui a entraîné une charge de maintenance croissante:

  • L’utilisation de compilateurs / d’exécution plus anciens limitait notre capacité à mettre à niveau certaines dépendances importantes.
  • Par exemple, nous utilisons Qt sous Windows et Linux: Les versions récentes de Qt nécessitent des compilateurs plus modernes en raison de l’inclusion de Chromium (via QtWebEngine).
  • Au fur et à mesure de notre intégration poussée au système d’exploitation, notre incapacité à nous appuyer sur des versions plus récentes de ces chaînes d’outils augmentait le coût de l’adoption des nouvelles API.
  • Par exemple, Python 2 encore techniquement requiert Visual Studio 2008. Cette version n’est plus prise en charge par Microsoft et n’est pas compatible avec le SDK Windows 10.

python3 "src =" http://www.i-programmer.info/images/stories/News/2012/DEC/A/python3.jpg "style =" display: block; marge gauche: auto; margin-right: auto; "width =" 183 "height =" 145

Plus d’information

Python 2.7 va prendre sa retraite dans …

Il est temps de jeter Python 2

Python.org

Articles Liés

Python 2.7 à maintenir jusqu’en 2020

Résultats de l’enquête auprès de plus de développeurs Python

Qu’est-ce qui rend Python spécial?

Python 3.3 dépasse 2.7 – il est temps de passer?

Python 3 était-il une erreur?

Pour être informé des nouveaux articles sur I Programmer, inscrivez-vous à notre bulletin hebdomadaire, souscrire à la Flux RSS et suivez nous sur, Gazouillement, Facebook ou Linkedin.

Bannière

appC "width =" 400 "height =" 349

commentaires

ou envoyez votre commentaire à: commentaires@i-programmer.info

Source

A propos newstrotteur-fr

Découvrez également

L’avenir de l’innovation dans la technologie grand public

Crédits: CC0 Public Domain Alors que les célébrations de la nouvelle décennie prenaient fin, plus …

Laisser un commentaire

Do NOT follow this link or you will be banned from the site!