ホームページ >ウェブフロントエンド >jsチュートリアル >JS プロジェクトのパッケージのセキュリティの脆弱性を修正する手順

JS プロジェクトのパッケージのセキュリティの脆弱性を修正する手順

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-26 07:51:03280ブラウズ

インストールされたパッケージまたはその依存関係にセキュリティの脆弱性が検出された場合、Github は定期的にアラートを送信します。以前は、dependabot に問題を修正させようとしていました。ただし、半分の時間は、生成された PR をマージできませんでした。その結果、違反が放置されたことは良くありません。私の場合は pnpm を使用していますが、npm も同様だと思います。

今日、Niraj Chauhan によるこの記事を見つけて、ターミナルを使用して問題を解決する方法を知りました。

手順:

  • Github から dependabot アラートを受け取ります:

Steps to fix package security vulnerabilities in your JS project

  • ご存知のとおり、上のスクリーンショットのパッケージ名は記事の残りの部分と一致しません。しかし、これは手順に関するものであり、要点は理解できます。
  • マシン内のプロジェクトに移動し、pnpm Audit を実行します。脆弱性に関する詳細が表示されるはずです:

Steps to fix package security vulnerabilities in your JS project

  • パスセクションで、これの原因が確認できるはずです。私の場合、それは「ネストされた依存関係」(依存関係の依存関係)のようです。

  • pnpm Why NAME_OF_THE_EXTENSION を実行して上記を確認できます。私の場合、最初の脆弱性に対して実行すると、次のメッセージが表示されます: pnpm Why netmask

Steps to fix package security vulnerabilities in your JS project

  • pnpm Audit fix を実行してみることもできますが、私にとってはうまくいきません。

  • package.json を開き、これの原因となっているパッケージのバージョン (私の場合は mailgun-js) を更新します。 pnpm view NAME_OF_THE_PACKAGE version を実行してすべてのバージョンを確認するか、pnpm info NAME_PACKAGE version を実行して最新の安定バージョンを確認できます。

異なる場合は、必要なバージョンで package.json ファイルを編集し、pnpm i を再度実行します。その後、pnpm Audit を再度実行して、脆弱性がなくなったことを確認します。まだ存在する場合は、最初から始めるか、読み続けてください。

  • 私の場合、最新の安定バージョンがインストールされているため、別のアプローチを取る必要があります。

  • ネストされた依存関係の特定のバージョンを pnpm に強制的にインストールすることができます。 pnpm のドキュメントはここにあり、package.json ファイルで次のように実行します。

Steps to fix package security vulnerabilities in your JS project

  • オーバーライドしようとしたバージョンに関するエラーが発生したため、package.json ファイルに最新のバージョンを書き込みました。

Steps to fix package security vulnerabilities in your JS project

Steps to fix package security vulnerabilities in your JS project

  • pnpm i を実行すると、そのパッケージの脆弱性はなくなりました。

編集 25/10: この Stackoverflow スレッドによると、Github dependabot と pnpm 監査フィードは両方とも同じデータベースからのものであるため、脆弱性を見逃すことはありませんが、dependabot ワークフローではなくこの方法で問題を修正します。このブログ投稿もあります。

以上がJS プロジェクトのパッケージのセキュリティの脆弱性を修正する手順の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。