La nouvelle version de PHP 8 se distingue par ses nouvelles fonctionnalités, dont certaines bouleversent en profondeur la sécurité du code. Vous avez les types d’union, les attributs de fonctions et le générateur de nombres aléatoires cryptographiquement. Ces programmes renforcent significativement la robustesse et la résilience du code face aux failles courantes. Si PHP 8 ne rend pas du jour au lendemain votre site instantanément plus sûr, il ouvre néanmoins la voie à des pratiques de développement plus sécurisées, sous réserve d’être correctement utilisées.

Les types d’union 

Les types d’union introduits dans PHP 8 réduisent le risque d’injection de données malveillantes. Grâce à cette nouvelle fonctionnalité, il est désormais possible de définir des variables pouvant accepter plusieurs types de données autorisés. Elle vérifie uniquement les types autorisés qui leur sont assignés. Cela permet de s’assurer que les variables ne contiennent que les valeurs attendues, correspondant aux types spécifiés. Ils empêchent, par exemple, qu’une chaîne de caractères malveillante ne soit injectée dans une variable numérique. Les types d’union rendent le code PHP plus précis et robuste. Vous pouvez voir ce site pour plus de détails.

Sujet a lire : Quelles sont les options d'assurance pour protéger une agence de développement web à Rouen ?

La génération de nombres aléatoires

Cette fonctionnalité est capitale en matière de sécurité. Elle sert à effectuer des opérations sensibles comme la génération : 

  • de tokens d’authentification ;
  • de clés secrètes ; 
  • de codes de validation. 

PHP 8 génère par défaut des nombres aléatoires cryptographiquement sûrs. Il s’appuie sur des sources d’entropie fiables. Aucune intervention supplémentaire n’est requise de la part des développeurs pour garantir la sécurité des nombres aléatoires générés par PHP 8. Par opposition, PHP 7 utilisait par défaut la fonction  mt_rand(), connue pour produire des nombres pseudo-aléatoires de faible qualité. Ils sont vulnérables à des attaques par force brute. 

A lire aussi : Quel est le meilleur support pour sauvegarder des données ?

Les attributs de fonctions 

Concrètement, ils servent à annoter une fonction avec des attributs spécifiant par exemple des vérifications à effectuer sur ses paramètres d’entrée ou des actions à entreprendre avant ou après son exécution. Ils servent aussi à vérifier que les entrées correspondent exactement aux types attendus et à bloquer des entrées non autorisées ou à appliquer des politiques de sécurité strictes sur les hooks WordPress. Ils offrent ainsi la possibilité d’implémenter des contrôles d’accès au niveau des fonctions, renforçant leur sécurité. 

La compilation juste-à-temps (JIT)

Le compilateur JIT génère dynamiquement du code machine natif à la volée, à chaque exécution du code PHP. Si une faille de sécurité est présente dans le code compilé, elle peut entraîner des vulnérabilités critiques, exploitables dans le code machine généré. Il est donc essentiel d’effectuer des tests de sécurité approfondis sur le code PHP avant et après sa mise à niveau vers PHP 8, afin de détecter tout bug ou faille introduits ou révélés par le compilateur JIT. Assurez-vous notamment de toujours tester minutieusement toutes les mises à jour PHP sur un environnement de test isolé, avant tout déploiement en production.