このシナリオを想像してください。 Linuxボックスにアプリケーションをインストールしたい。このパッケージは開発の初期段階にあり、NPMリポジトリでのみ利用できます。あなたはパッケージの信憑性について少し妄想的で懐疑的です。あなたならどうしますか?プログラマーの場合は、パッケージのコードをチェックして、問題がないかどうかを確認できます。コーディングについて知らない場合は、パッケージをやみくもに信頼してインストールするしかありません。この問題を解決するために、 "npq"という名前のプログラムがあります。 Npmを使用してパッケージを安全にインストールするために使用できます または糸 Linuxのパッケージマネージャー。
npqは、インストールする前に、インストールするパッケージを監査します。既知の脆弱性がある場合は、警告が表示されるため、インストールを安全にスキップできます。
Npqは、パッケージが安全かどうかを確認するために次の手順を実行します。
- SnykVulnerabilityDBをチェックします パッケージに脆弱性が存在するかどうかを確認します。既知の脆弱性がある場合は、警告が表示されます。
- パッケージの古さを確認してください。パッケージの有効期間が22日未満の場合、警告メッセージが表示されます。
- パッケージのダウンロード数を確認します。先月のパッケージのダウンロード数が20未満の場合、警告が表示されます。
- パッケージのREADMEがあるかどうかを確認します。 READMEがない場合は、警告が表示されます。
- パッケージに事前スクリプトまたは事後スクリプトが含まれているかどうかを確認します。これらのスクリプトは悪意のあるものである可能性があるため、警告メッセージが表示されます。
警告が表示されない場合、パッケージはおそらく安全です。私が言ったことに注意してください-パッケージはおそらく安全です 。ただし、安全性は保証されていません 。 Synkデータベースに開示が公開されておらず、npqのチェックに合格した、悪意のある、または脆弱なパッケージがまだ存在している可能性があります。
すべてのテストが実行された後、npqは実際のパッケージのインストールプロセスをNpmまたはYarnパッケージマネージャーに引き渡します。 Npmがデフォルトです。
Npqがパッケージのインストールを妨げることはないことに注意してください。考えられるセキュリティ問題についてのみパッケージを監査し、既知の脆弱性がある場合は警告を表示します。インストールを無視するか、自己責任で続行するかはあなた次第です。
Npqをインストール
LinuxボックスにNodejsがインストールされていることを確認してください。そうでない場合は、次のリンクを参照してください。
- LinuxにNodeJSをインストールする方法
Nodejsをインストールした後、次のコマンドを実行してNpqをインストールします。
$ npm install -g npq
上記のコマンドは、2つのバイナリ、つまり npqを配置します およびnpq-hero あなたの道に。
LinuxでNpmまたはYarnを使用してパッケージを安全にインストールする
パッケージを監査してインストールするには、たとえば tldr 、単に実行します:
$ npq install tldr
出力例:
✔ Checking package maturity ✖ Identifying package author... ✔ Checking package download popularity ✔ Checking availability of a README ✔ Identifying package repository... ✔ Checking package for pre/post install scripts ✖ Checking for known vulnerabilities Detected possible issues with the following packages: [tldr] - the package description has no e-mail associated with author(s). Proceed with care. [*] - Unable to query for known vulnerabilities. Install snyk and authenticate or provide a SNYK_TOKEN env variable (https://snyk.io) ? Would you like to continue installing package(s)? (y/N)
上記の出力に見られるように、3つの警告があります:
- Npqはtldrパッケージの作成者を特定できませんでした
- パッケージの説明にメールアドレスはありません
- Snykデータベースのセットアップと認証はまだ行っていません。 Synk CLIをインストールし、Snykデータベースで認証するには、このリンクを参照してください。 。
警告を気にせず、安全であると確信している場合は、 Yと入力してください。 パッケージのインストールを続行します。
エイリアスの作成
Npqは、実際にインストールする前に、npmパッケージの既知の脆弱性をチェックするための単なるプレステップツールです。日常業務で頻繁に使用する場合は、エイリアスを作成するだけです。 以下のように。
$ alias npm='npq-hero'
今後は、npmパッケージを監査し、次のコマンドを使用してインストールできます。
$ npm install package_name
デフォルトのパッケージマネージャーを変更する
すでに述べたように、Npqはインストールプロセスを Npmに引き継ぎます それらを監査した後のデフォルトのパッケージマネージャー。 Yarnをデフォルトのパッケージマネージャーとして設定する場合は、環境変数を指定します。
NPQ_PKG_MGR=yarn
パッケージマネージャーとしてyarnを使用してエイリアスを作成するには、次のようにします。
alias yarn="NPQ_PKG_MGR=yarn npq-hero"
これがお役に立てば幸いです。