npm/pnpm/bun/deno: 依存パッケージの install スクリプトを既定で止める
サプライチェーン攻撃の多くは postinstall などのライフサイクルスクリプトで動く。pnpm・bun・deno は依存のスクリプトを既定では実行しない。npm でも設定で止められる。
設定方法
- npm:
.npmrcにiniignore-scripts=true(ネイティブビルドが必要なパッケージは、個別に
npm rebuild <pkg>する) - pnpm(v10 以降): 依存のビルドスクリプトは承認制。許可するときは
pnpm approve-builds、または設定ファイルで許可リストを管理する(最近のバージョンではallowBuilds設定も紹介されている) - bun:
package.jsonのtrustedDependenciesに載せたパッケージだけスクリプトを実行する - deno: npm パッケージのスクリプトは
--allow-scriptsを付けたときだけ実行する
注意点
- スクリプトを止めても、
importしたときに動く悪性コードは防げない。npm/pnpm: minimum-release-age でサプライチェーン攻撃を避けつつ、緊急パッチだけ一時的に解除する やロックファイルのレビューと併用する。 - 設定名はバージョンで変わることがある(特に pnpm)。手元のバージョンのドキュメントを確認。
出典
- @pizzacat83b · 2026-03-31
- 関連(pnpm のセキュリティ設定記事): @ryoppippi · 2026-01-28