Heim  >  Artikel  >  Web-Frontend  >  Schritte zum Beheben von Paketsicherheitslücken in Ihrem JS-Projekt

Schritte zum Beheben von Paketsicherheitslücken in Ihrem JS-Projekt

Linda Hamilton
Linda HamiltonOriginal
2024-10-26 07:51:03204Durchsuche

Github sendet Ihnen regelmäßig Benachrichtigungen, wenn Sicherheitslücken in Ihren installierten Paketen oder deren Abhängigkeiten erkannt werden. Früher habe ich versucht, sie vom Dependabot reparieren zu lassen. In der Hälfte der Fälle gelang es mir jedoch nicht, die für mich generierte PR zusammenzuführen. Infolgedessen blieben die Verstöße unberücksichtigt, was nicht gut ist. In meinem Fall verwende ich pnpm, ich vermute, dass es bei npm dasselbe ist.

Ich bin heute auf diesen Artikel von Niraj Chauhan gestoßen und er hat mir gezeigt, wie man sie mithilfe des Terminals löst.

Schritte:

  • Sie erhalten die Abhängigkeitswarnung von Github:

Steps to fix package security vulnerabilities in your JS project

  • Ich weiß, der Paketname im Screenshot oben stimmt nicht mit dem Rest des Artikels überein. Aber hier geht es um die Schritte, Sie verstehen, worauf es ankommt.
  • Navigieren Sie zum Projekt auf Ihrem Computer und führen Sie pnpm audit aus. Sie sollten Details zu den Schwachstellen sehen:

Steps to fix package security vulnerabilities in your JS project

  • Im Pfadabschnitt sollten Sie sehen, was dies verursacht. In meinem Fall scheint es sich um „verschachtelte Abhängigkeiten“ (Abhängigkeiten von Abhängigkeiten) zu handeln.

  • Sie können pnpm why NAME_OF_THE_EXTENSION ausführen, um das oben Gesagte zu bestätigen. In meinem Fall erhalte ich Folgendes, wenn ich es bei meiner ersten Schwachstelle ausführe: pnpm why netmask

Steps to fix package security vulnerabilities in your JS project

  • Sie können versuchen, pnpm audit fix auszuführen, aber es funktioniert bei mir nie.

  • Öffnen Sie Ihre package.json und aktualisieren Sie die Paketversion, die dies verursacht – in meinem Fall mailgun-js. Sie können pnpm view NAME_OF_THE_PACKAGEversionen ausführen, um alle Versionen anzuzeigen, oder pnpm info NAME_PACKAGE version ausführen, um die neueste stabile Version zu erfahren.

Wenn es anders ist, bearbeiten Sie Ihre package.json-Datei mit der Version, die Sie benötigen, und führen Sie pnpm i erneut aus. Anschließend führen Sie pnpm audit erneut aus, um zu bestätigen, dass die Schwachstelle behoben ist. Wenn es immer noch da ist, beginnen Sie erneut oder lesen Sie weiter.

  • In meinem Fall ist die neueste stabile Version die, die ich installiert habe, also muss ich einen anderen Ansatz wählen.

  • Wir können pnpm zwingen, eine bestimmte Version einer verschachtelten Abhängigkeit zu installieren. Die pnpm-Dokumente sind hier und Sie machen es so in Ihrer package.json-Datei:

Steps to fix package security vulnerabilities in your JS project

  • Ich habe eine Fehlermeldung bezüglich der Version erhalten, die ich überschreiben wollte, also habe ich die neueste Version in meine package.json-Datei geschrieben:

Steps to fix package security vulnerabilities in your JS project

Steps to fix package security vulnerabilities in your JS project

  • Führen Sie pnpm i und Happy Days aus, die Schwachstelle für dieses Paket ist nicht mehr vorhanden.

Edit 25/10: Laut diesem Stackoverflow-Thread stammen sowohl Github-Depenabot als auch Pnpm-Audit-Feeds aus derselben Datenbank, sodass Ihnen keine Schwachstellen entgehen, sondern die Dinge auf diese Weise und nicht über den Dependabot-Workflow behoben werden. Außerdem gibt es diesen Blogbeitrag.

Das obige ist der detaillierte Inhalt vonSchritte zum Beheben von Paketsicherheitslücken in Ihrem JS-Projekt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn