あなたのnpmパッケージ、脆弱性の塊説。急いで最新にするよ!
npm便利ですよね。
昨今フロントweb開発でNode.jsが登場しないことはないので、みなさんお使いかと思いますが、ちゃんとバージョン管理していますか?
私はしがないweb制作者ですが、npmパッケージなしでの開発はありえないです。
ただそういえばバージョン管理をしていないなと思い、現在バージョンと最新バージョンを比べてみることに。そしたら...
$ npm outdated
微妙にパッケージが古くなってた...
npm-check-updatesをインストール
まずはpackage.jsonを最新バージョンにアップグレードしてくれるnpm-check-updatesをインストールします。
npm i npm-check-updates
そしたら、
ncu -u
Run npm install to install new versions.
というメッセージが出たらOK、最後にパッケージをインストールします。
npm i
すると...
660の脆弱性があるから直すためにnpm audit fixしろよな!
ということらしいです👀
ヒェ...
(npmの更新サボってた人はみんな数百レベルであると思われます)
とりあえずコマンドを実行します。脆弱性のある箇所を自動修正してくれるコマンドです。
npm audit fix
すると
残り12個の脆弱性は手作業でオナシャス!!
ということらしい。
マジかい。
npm audit
で脆弱性一覧を出してみる。
15個の脆弱性のうち、一個の危険性がhigh
になっていました(脆弱性から正規表現を使ったDoS攻撃を受ける可能性があるそうです)
highのものを詳しくみてみます。
───────────────┬──────────────────────────────────────────────────────────────┐
│ High │ Denial of Service │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ http-proxy │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in │ >=1.18.1 │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ browser-sync [dev] │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ browser-sync > http-proxy │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://npmjs.com/advisories/1486 │
└───────────────┴──────────────────────────────────────────────────────────────┘
browser-syncが依存している、http-proxyに問題があるそう。なんぞこれ...?
調べてみると、執筆時点5日前にアップデートが出ており、最新版にする必要がありそうです。
とりあえず
$ npm install http-proxy
で最新版をダウンロードし、再度脆弱性のある箇所を自動修正してくれるコマンド↓
npm audit fix
すると...
fixed 9 of 13 vulnerabilities in 1275 scanned packages
4 vulnerabilities required manual review and could not be updated
high消えたし、4つまで減らせたよかった!!
ぬわ〜ん疲れたも〜ん!!
結論 npmは定期的にお手入れせよ
バージョンは古くなってるし、脆弱性はあるし、多分自動化できるんだろうけど弱弱エンジニアなので、これから調べてみます。
みんなもnpmパッケージのバージョン管理、やろう!!
Author And Source
この問題について(あなたのnpmパッケージ、脆弱性の塊説。急いで最新にするよ!), 我々は、より多くの情報をここで見つけました https://qiita.com/samuraibrass/items/a6cb086652c30ef1329b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .