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:
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
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:
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!