
安全に*インストールプロセスの一部として監査して、npm/yarnでパッケージをインストールします

NPQに関するメディアの報道:
NPQがインストールされたら、安全に*パッケージをインストールできます。
npq install express npq 、構文のヒューリスティックを採用し、CVEデータベースを照会することにより、パッケージが安全であることを正気に確認するために、次の手順を実行します。
NPQがインストールを続行するように求められている場合、実際のパッケージインストールジョブをパッケージマネージャー(デフォルトでNPM)に渡すだけです。
安全に* - 保証された安全はありません。悪意のあるまたは脆弱なパッケージが存在する可能性があり、セキュリティの脆弱性は公開されておらず、NPQのチェックに合格します。
npm install -g npq注: yarnではなくnpmでインストールすることをお勧めします。そうすれば、 npqシェルエイリアスを自動的にインストールできます。
npq install expressnpq 、インストールしているNPMパッケージが安全であることを確認するための事前ステップであるため、日々のnpm使用に安全に埋め込むことができるため、 npq明示的に実行することを忘れないでください。
alias npm= ' npq-hero 'yarnを使用している場合、または一般的にNPQを明示的に伝えたい場合は、使用するパッケージマネージャーを環境変数を指定できます: NPQ_PKG_MGR=yarn
例:パッケージマネージャーとしてYarnを使用してエイリアスを作成します。
alias yarn= " NPQ_PKG_MGR=yarn npq-hero "注:デフォルトでは、 npq 、それぞれのパッケージのデューダイジェリジェンスを終了した後、すべてのコマンドとその引数をnpmパッケージマネージャーにオフロードします。
| マーシャル名 | 説明 | メモ |
|---|---|---|
| 年 | NPMの年齢が22日未満の場合、パッケージの警告が表示されます | 特定のバージョンではなく、パッケージ作成日をチェックします |
| 著者 | 著者フィールドなしでパッケージが見つかった場合、警告が表示されます | 著者の最新バージョンをチェックします |
| ダウンロード | 先月のダウンロード数が20未満の場合、パッケージの警告が表示されます | |
| readme | パッケージにREADMEがない場合、またはNPMスタッフによってセキュリティプレースホルダーパッケージとして検出された場合、警告が表示されます | |
| レポ | 有効で動作するリポジトリURLなしでパッケージが見つかった場合、警告が表示されます | リポジトリURLの最新バージョンをチェックします |
| スクリプト | パッケージに事前/ポストインストールスクリプトがある場合は警告が表示されます。 | |
| スナイク | Snykのデータベースに脆弱性があるパッケージが見つかった場合、警告が表示されます | SNYKが機能するには、有効なAPIトークンを備えたsnyk NPMパッケージをインストールするか、SNYK_TOKEN環境変数でトークンを使用できるようにする必要があり、NPQはそれを使用します |
| ライセンス | ライセンスフィールドなしでパッケージが見つかった場合、警告が表示されます | ライセンスの最新バージョンをチェックします |
| 期限切れのドメイン | メンテナーの1人が期限切れのドメインを含む電子メールアドレスを持っている場合にパッケージが見つかった場合、警告が表示されます | 期限切れのドメインを持つメンテナーの依存関係バージョンをチェックします |
| 署名 | レジストリのパックメントに表示されるパッケージの署名と、npmjs.comレジストリで公開されているキーを比較します | |
| 出所 | 公開されたパッケージの出所メタデータのパッケージの証明を確認します |
Marshallを完全に無効にするには、MarshallのShortNameを使用して環境変数を設定します。
たとえば、Snykの脆弱性Marshallを無効にするには:
MARSHALL_DISABLE_SNYK=1 npq install express
npq install express --dry-run
node.jsを学ぶリランタルからの安全なコーディング手法とベストプラクティス
npm install 、脆弱性がある場合でもモジュールをインストールします。 NPQは、検出された問題を表示し、ユーザーにインストールを続行するかどうかの確認を促します。pre-installスクリプトがあるかどうかなど、モジュールの特性について、Marshallsと呼ばれる合成チェックを実行します。 npm auditそのようなチェックを実行せず、既知のセキュリティ問題についてのみ脆弱性データベースに相談します。npm audit NPQが行うことではなく、SNYKが行うことにより機能に近いです。このプロジェクトへの貢献に関するガイドラインについては、寄付をご覧ください
liran tall [email protected]