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

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

新規登録して質問してみよう
ただいま回答率
85.48%
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サイトと呼びます。

Q&A

解決済

1回答

2485閲覧

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

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サイトと呼びます。

0グッド

0クリップ

投稿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

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

今回の場合ですが、cssnanoはビルド時にしか使わないツールなので、外部からcssnanoにアクセスすること自体が不可能です。

なので、「cssnanoの依存ライブラリにしか影響しない」脆弱性が、実行時の問題となることは原理的にありえません。

投稿2021/06/13 11:02

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

just4clarity

2021/06/16 11:46

ご回答ありがとうございます! ご返信遅くなりましたmm 今回のケースではビルド時のみ使用されるケースのためこの脆弱性を突かれるケースはありえない旨納得いたしました。 そこで…ビルド時以外、例えばHTTPクライアントであるaxios自体、もしくはその依存パッケージに脆弱性がある場合はどういった対応が一般的なのかご存知でしょうか。 アンサーに再度質問をする形で恐れ入ります。 ご確認いただけますと幸いです。
just4clarity

2021/07/09 10:21

長く募集期間をとってしまったためクローズいたします。 ベストアンサーとさせていただきました。アドバイスありがとうございました!mm
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問