質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
npm

npmは、Node Packaged Modulesの略。Node.jsのライブラリ・パッケージを管理できるツールです。様々なモジュールを簡単にインストールでき、自分でモジュールを作成し公開する際にも使用できます。

Nuxt.js

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

解決済

npm audit の脆弱性警告はどこまで対応するべきでしょうか

just4clarity
just4clarity

総合スコア8

npm

npmは、Node Packaged Modulesの略。Node.jsのライブラリ・パッケージを管理できるツールです。様々なモジュールを簡単にインストールでき、自分でモジュールを作成し公開する際にも使用できます。

Nuxt.js

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

1回答

0評価

0クリップ

775閲覧

投稿2021/06/11 10:42

編集2021/06/11 11:12

前提・実現したいこと

Nuxt.jsを採用し、本番環境もNode.jsで構築予定のアプリケーションを開発しています。

npm auditで検知できる脆弱性が依存の依存パッケージに及んでおり、対応が難しく困っております。
この点に関して以下2点質問させてください。

  1. 実際にNode.jsで運用しているプロダクトではどこまで対応されているのでしょうか

脆弱性を突かれる可能性は低いため気にしなくて良いという意見も目にします。
脆弱性警告を残したまま運用しているのでしょうか?
0. 私が試した事以外に対応方法があればご教示いただきたく思います

発生している問題・エラーメッセージ

現在、依存に依存が連なるパッケージ群で脆弱性警告が出ております。
複数の依存パッケージで使用されておりバージョンも様々です。

一部抜粋

┌───────────────┬──────────────────────────────────────────────────────────────┐ │ High │ Denial of Service │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Package │ css-what │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Patched in │ >=5.0.1 │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Dependency of │ nuxt │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Path │ nuxt > @nuxt/webpack > cssnano > cssnano-preset-default > │ │ │ postcss-svgo > svgo > css-select > css-what │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ More info │ https://npmjs.com/advisories/1754 │ └───────────────┴──────────────────────────────────────────────────────────────┘ ┌───────────────┬──────────────────────────────────────────────────────────────┐ │ High │ Regular Expression Denial of Service │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Package │ normalize-url │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Patched in │ >=4.5.1 <5.0.0 || >=5.3.1 <6.0.0 || >=6.0.1 │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Dependency of │ nuxt │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ Path │ nuxt > @nuxt/webpack > cssnano > cssnano-preset-default > │ │ │ postcss-normalize-url > normalize-url │ ├───────────────┼──────────────────────────────────────────────────────────────┤ │ More info │ https://npmjs.com/advisories/1755 │ └───────────────┴──────────────────────────────────────────────────────────────┘

試したことと懸念点

1, npm audit fixコマンドを実行

効果はありませんでした。

2, package-lock.jsonを直接書き換える

警告の出ている依存パッケージのバージョンを最新版にバージョン番号を直接書き換えることで警告は消えました。

  • package-lock.jsonはそもそも手動で更新することが想定されていない
  • npm iを実行すると元の記述に戻ってしまう
  • 各パッケージで動作保証の取れていないバージョンを使用することになるため動作が保証されない

3, package.jsonのresolutionsフィールドを使用する

特定のパッケージバージョンを固定する方法です。
こちらの記事を参考にさせていただきました。
https://numb86-tech.hatenablog.com/entry/2020/05/26/170627

  • 前述のpackage-lock.jsonを直接書き換えるのと同義で動作保証の取れていないバージョンを使用することになる

4, 各依存パッケージが更新されるのを待つ

もっとも確実な方法だと思います。
が、以下の懸念点があります。

  • メンテナンスが止まっているケースもあるため、いつまで経っても解決しない場合がある

補足情報(FW/ツールのバージョンなど)

  • Node.js -> 14.15.3
  • npm -> 6.14.9
  • nuxt -> 2.14.12

実際のプロダクト運用ではどのように対応されているのでしょうか。
どうぞよろしくお願いいたします。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

npm

npmは、Node Packaged Modulesの略。Node.jsのライブラリ・パッケージを管理できるツールです。様々なモジュールを簡単にインストールでき、自分でモジュールを作成し公開する際にも使用できます。

Nuxt.js

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。