## 経緯 [[🦉owlery]]の `npmセキュリティ強化設定ノートの更新余地 再調査 2026-07-25` に従って、[[📕npmのセキュリティ強化設定]]の情報を最新化する。 ### バージョン | 対象 | ノート記載(2026/05列) | **今回の最新(07-25)** | | -------- | --------------- | --------------------------------------- | | [[npm]] | 11.12.1 | **12.0.1**(07-10。変動なし) | | [[pnpm]] | 11.0.0 | **11.17.0**(07-23) | | [[Bun]] | 1.3.13 | **1.3.14**(**05-13**。stableは2ヶ月以上出ていない) | | [[Deno]] | 2.7.13 / 2.8.0 | **2.9.4**(07-23) | ### やること - ライフサイクルスクリプトの無効化 - [[npm]]が影響ある - minimal release age - npm欄に追記: v11.17.0で `min-release-age-exclude` が追加(特定ライブラリだけ除外) - **Deno欄を「✅ デフォルトの設定でOK」に書き換え**: Deno 2.9で `minimumDependencyAge` が既定有効(**24時間**)。公式blogで再確認済み - 危険ソースの指定禁止 - v12.0.0で `allow-git` / `allow-remote` の既定値が `none` になった - `root` で直接依存のみ許可 **凡例**: ✅ 対応済み・不要 / ⚠️ 要対応 / 📌 判断が要る | 節 | [[npm]] (→12.0.1) | [[pnpm]] | [[Bun]] | [[Deno]] (→2.9.4) | |---|---|---|---|---| | 1. バージョンピン留め | ✅ `save-exact=true` 済 | ✅ `saveExact` 済 | ✅ `~/.npmrc` が効く | ✅ 都度 `--save-exact`(設定不可) | | 2. ロックファイル | ✅ `npm ci` | ✅ `pnpm ci` | ✅ `bun ci` | ✅ `deno ci`(2.8で既に可) | | 3. スクリプト無効化 | 📌 `ignore-scripts=true` を**外せる** | ✅ 既定 | ✅ `ignoreScripts` 済 | ✅ 既定 | | 4. Minimal Release Age | ✅ `min-release-age=1` 済 | ✅ 既定(1日) | ⚠️ **未設定** | ✅ 上げれば既定(24h) | | 5. 危険なソース禁止 | 📌 v12で自動的に有効 | ✅ 既定 | — 機能なし | — 機能なし | | 6. trust policy(新設候補) | — 機能なし | 📌 要設定 | — 機能なし | 📌 要設定 | ### 設定 | 場所 | 内容 | |---|---| | `~/.npmrc` | `ignore-scripts=true` / `min-release-age=1` / `save-exact=true` | | pnpm global config | `saveExact: true` のみ | | `~/.bunfig.toml` | `[install] ignoreScripts = true` のみ | | Deno | 設定ファイルなし(プロジェクト単位) | ## ライフサイクルスクリプトの無効化 [[📕ライフサイクルスクリプトが実行されているかを確認する]] を参考に、サンプルプロジェクトを作成。 ```console $ npm config set ignore-scripts false $ npm i --foreground-scripts npm notice run postinstall npm notice run echo '[root] postinstall' [root] postinstall up to date, audited 3 packages in 113ms found 0 vulnerabilities npm warn install-scripts 1 package had install scripts blocked because they are not covered by allowScripts: npm warn install-scripts testpkg (postinstall: echo '[testpkg] postinstall') npm warn install-scripts npm warn install-scripts Run `npm install-scripts ls` to review, or `npm install-scripts approve <pkg>` to allow. ``` [[postinstall]]の結果は設定によって変わった。 - `~/.npmrc` に `ignore-scripts` なし - rootだけ実行 - `~/.npmrc` に `ignore-scripts=false` - rootもpkgも実行 - `~/.npmrc` に `ignore-scripts=true` - 実行されない ## 危険なソース禁止 [[npm]]に [[allow-git (npm)|allow-git]] と [[allow-remote (npm)|allow-remote]] の件、およびデフォルト設定で問題ない旨を追加。