Maison  >  Article  >  interface Web  >  Étapes pour corriger les vulnérabilités de sécurité des packages dans votre projet JS

Étapes pour corriger les vulnérabilités de sécurité des packages dans votre projet JS

Linda Hamilton
Linda Hamiltonoriginal
2024-10-26 07:51:03204parcourir

Github vous envoie des alertes régulières lorsque des failles de sécurité sont détectées parmi vos packages installés ou ses dépendances. J'avais l'habitude d'essayer de laisser le dependabot les réparer pour moi. Cependant, la moitié du temps, je n'ai pas pu fusionner le PR qui avait été généré pour moi. En conséquence, les violations n’ont pas été résolues, ce qui n’est pas une bonne chose. Dans mon cas j'utilise pnpm, je suppose que c'est la même chose avec npm.

Je suis tombé sur cet article de Niraj Chauhan aujourd'hui et cela m'a expliqué comment les résoudre à l'aide du terminal.

Étapes :

  • Vous recevez l'alerte dependabot de Github :

Steps to fix package security vulnerabilities in your JS project

  • Je sais, le nom du package dans la capture d'écran ci-dessus ne correspond pas au reste de l'article. Mais il s’agit ici des étapes, vous comprenez.
  • Accédez au projet sur votre machine et exécutez l'audit pnpm. Vous devriez voir des détails sur les vulnérabilités :

Steps to fix package security vulnerabilities in your JS project

  • Dans la section Chemin, vous devriez voir la cause de cela. Dans mon cas, il semble qu'il s'agisse de "dépendances imbriquées" (dépendances de dépendances).

  • Vous pouvez exécuter pnpm Why NAME_OF_THE_EXTENSION pour confirmer ce qui précède. Dans mon cas, j'obtiens ceci en l'exécutant sur ma première vulnérabilité : pnpm pourquoi netmask

Steps to fix package security vulnerabilities in your JS project

  • Vous pouvez essayer d'exécuter le correctif d'audit pnpm mais cela ne fonctionne jamais pour moi.

  • Ouvrez votre package.json et mettez à jour la version du package à l'origine de ce problème - dans mon cas, mailgun-js. Vous pouvez exécuter pnpm view NAME_OF_THE_PACKAGE versions pour voir toutes les versions ou les informations pnpm NAME_PACKAGE version pour connaître la dernière version stable.

Si c'est différent, modifiez votre fichier package.json avec la version dont vous avez besoin et exécutez à nouveau pnpm i. Après cela, vous exécutez à nouveau l'audit pnpm pour confirmer que la vulnérabilité a disparu. S'il est toujours là, recommencez ou continuez à lire.

  • Dans mon cas, la dernière version stable est celle que j'ai installée, je dois donc adopter une autre approche.

  • Nous pouvons forcer pnpm à installer une certaine version d'une dépendance imbriquée. Les docs pnpm sont ici et vous le faites ainsi dans votre fichier package.json :

Steps to fix package security vulnerabilities in your JS project

  • J'ai eu une erreur concernant la version que j'essayais de remplacer, j'ai donc écrit la dernière dans mon fichier package.json :

Steps to fix package security vulnerabilities in your JS project

Steps to fix package security vulnerabilities in your JS project

  • Exécutez pnpm i et happydays, la vulnérabilité de ce package n'est plus là.

Edit 25/10 : selon ce fil de discussion Stackoverflow, les audits Github dependabot et pnpm proviennent de la même base de données, vous ne manquez donc pas de vulnérabilités mais corrigez les choses de cette façon plutôt que par le workflow dependabot. Il y a aussi cet article de blog.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn