La prise en charge de l’analyse des vulnérabilités PHP par Snyk Code passe en bêta
DeveloperSteve Coochin
2 septembre 2021
0 minutes de lectureLa prise en charge de l’analyse des vulnérabilités PHP par Snyk Code est désormais disponible en bêta. Les problèmes de sécurité dans le code PHP peuvent maintenant être détectés rapidement et facilement.
Pour commencer, connectez-vous à Snyk ou créez un compte gratuit. Une fois connecté au tableau de bord, cliquez sur le bouton Add Project en haut à droite, puis connectez le dépôt que vous souhaitez analyser.

Vous pouvez ensuite vous connecter à différentes plateformes de dépôts et analyser les vulnérabilités PHP de tous les dépôts que vous gérez, même s’ils sont privés. Vous pouvez également lancer une analyse depuis la CLI ou un IDE. Découvrez d’autres façons d’intégrer Snyk Code à votre environnement de développement.
Examinons les trois principales vulnérabilités que les nouvelles analyses PHP peuvent détecter et voyons ce qu’il faut surveiller dans cette version bêta.
XSS
Les vulnérabilités de type cross-site scripting (XSS) permettent à un attaquant d’injecter du code malveillantdans des applications de confiance. L’attaque peut cibler le navigateur d’un utilisateur ou injecter du code dans l’environnement d’exécution de l’application ou dans le système d’exploitation.
En PHP, ce type de vulnérabilité peut avoir plusieurs causes et est le plus souvent associé à une validation inadéquate des données saisies par l’utilisateur. J’ai abordé ce sujet plus en détail dans mon précédent article sur la prévention de l’injection de code.
Examinons un exemple concret pour mieux comprendre ce qu’il faut rechercher dans cette pull request pour un dépôt.

Dans cet exemple, vous pouvez voir la comparaison côte à côte : filter_var est ajouté avec le type de filtre FILTER_SANITIZE_NUMBER_INT pour traiter la sanitisation des données d’entrée $_POST. Ce filtre supprime tous les caractères, à l’exception des chiffres et des signes plus et moins.
Hachage non sécurisé
Le hachage effectué par code permet de transformer de manière sécurisée une chaîne de caractères en une valeur ou une clé qui la représente. Cette opération sert parfois à stocker des données dans une base de données ou dans l’environnement d’exécution pour les utiliser ultérieurement. Il s’agit souvent d’un hachage réversible, qui permet de stocker les données chiffrées puis de les déchiffrer ultérieurement.
Traditionnellement, MD5 était la méthode standard — particulièrement en PHP — pour chiffrer des données telles que les mots de passe des utilisateurs, jusqu’à ce que cette méthode soit reconnue comme « cryptographiquement compromise et impropre à toute utilisation future » en 2008.
Dans cet exemple de correctif appliqué à ce dépôt, on constate que null est défini comme valeur par défaut dans l’appel de la fonction de clé signée. Ainsi, si aucune valeur n’est transmise à la fonction, la valeur par défaut sera null, qui pourra être traitée correctement par la fonction de clé signée.

Injection SQL
L’injection SQL ressemble à la XSS, mais cette vulnérabilité permet d’injecter une charge SQL malveillante dans une base de données. En sécurité applicative, cela peut entraîner la création d’un nouvel utilisateur doté de privilèges élevés, la compromission ou la suppression de données dans la base de données.
Il est essentiel de garder à l’esprit, en particulier lorsque des données saisies par l’utilisateur doivent être envoyées à une base de données, qu’une sanitisation adéquate est indispensable.
Dans un autre exemple de dépôt, vous pouvez voir que la pull request utilise filter_input_array de PHP pour traiter les données transmises à cette fonction de base de données.

Analysez votre code PHP avec Snyk Code
Voici quelques exemples courants tirés de la vaste base de connaissances de Snyk Code sur les vulnérabilités. Je vous encourage à essayer l’outil pour découvrir les problèmes détectés dans votre code.
N’oubliez pas que la prise en charge de PHP dans Snyk Code est encore en bêta. Nous aimerions beaucoup recueillir vos commentaires pour améliorer encore notre prise en charge de PHP. N’hésitez pas à nous contacter pour toute question ou pour échanger sur vos résultats.
Voici quelques autres articles intéressants sur la sécurité PHP :
Lancez-vous dans les compétitions Capture The Flag
Apprenez à résoudre des défis Capture The Flag en regardant à la demande notre atelier virtuel d’initiation.
