V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Livid
261.91D
583.43D

新电脑 brew install node 之后,一个小设置可以提升对供应链投毒的防御

  •  4
     
  •   Livid ·
    PRO
    · 3 天前 · 6233 次点击

    vi ~/.npmrc

    然后在里面加入这行:

    min-release-age=7
    
    22 条回复    2026-04-20 01:22:23 +08:00
    BanShe
        1
    BanShe  
       3 天前
    11.x 以上可以
    blank0ken
        2
    blank0ken  
       3 天前
    7day defence
    JasonEWNL
        3
    JasonEWNL  
       3 天前   ❤️ 6
    其他工具链可以参考 https://daniakash.com/posts/simplest-supply-chain-defense/#beyond-javascript 汇总。

    比如 uv ( v0.9.17+):
    # pyproject.toml
    [tool.uv]
    exclude-newer = "7d"
    HappyAndSmile
        4
    HappyAndSmile  
       3 天前
    当大多数人这样做之后,会不会相当于都延迟了开启使用的时间,从而效果没想象中大呢
    crocoBaby
        5
    crocoBaby  
       2 天前
    贴心小功能,7 天缓冲够了
    lisxour
        6
    lisxour  
       2 天前
    感觉对大部分人没啥作用,主要是信息差,平时不关注这类信息的给多长时间他们也不知道,就拿我自己为例,青龙面板前段时间爆了个超严重的漏洞,可以任意改密码然后任意登录,还有路径穿越任意读取文件,我中招了 4 个月之后才知道。。。
    lel020
        7
    lel020  
       2 天前
    @HappyAndSmile 不是所有就行,总有维护者或者特别关心某些库的人一直使用最新版甚至最新内测版, 流行的库就没可能所有人都不跟踪最新版, 那就不会投毒了不被发现,极少有投毒能潜伏七天的,影响力越大的库越不可能潜伏着毒,
    lel020
        8
    lel020  
       2 天前
    @lisxour 这不是针对旧版漏洞吧,已经发布的版本不能随意下架, 已经上线的漏洞也就只能你自己升级解决了,
    延迟 7 天是解决类似最近 claude code 源码泄露投毒到依赖链里的情况,这种投毒都是一次性的,一下子爆发一下子熄灭,炸到多少算多少,
    XWZCoffee
        9
    XWZCoffee  
       2 天前
    @HappyAndSmile 别用冷门的库,大的仓库几乎不会有你考虑的这种问题,7 天肯定是够了。
    mrchi
        10
    mrchi  
       2 天前   ❤️ 2
    @JasonEWNL 补充一下,UV 可以配置在用户级,这样就不需要每个项目单独去配置了。

    路径:~/.config/uv/uv.toml

    直接添加 exclude-newer = "7d" 这一行即可。
    gaojin
        11
    gaojin  
       2 天前
    可以看看这个项目的设计 https://github.com/jin10086/Buffer7
    subpo
        12
    subpo  
       2 天前
    安全更新似乎也会延期 7 天?需要取舍
    nyaaar
        13
    nyaaar  
       2 天前
    小巧思,可以的
    darson
        14
    darson  
       2 天前
    不觉得所有的供应链投毒能够在 7 天内发现。
    spediacn
        15
    spediacn  
       2 天前 via iPhone
    难,我觉得得一年,然后让 Gemini 扫一遍
    natsu94
        16
    natsu94  
       1 天前
    前面的,这是“提升”安全性
    ericterminal
        17
    ericterminal  
       1 天前   ❤️ 1
    我有个方法,GitHub 有个叫做 Santa 的项目,利用 macOS 的 ESF ,也就是和 Linux 的 eBPF 差不多的那个做文件访问权限,只认进程不认权限,我设置了除了 ssh 自己和相关进程才可以读取~/.ssh 目录,其他的程序,比如 node 如果读的话肯定有“鬼”的,直接在内核层面拦截
    netabare
        18
    netabare  
       1 天前 via iPhone
    如果把 npm 全部用 pnpm 替代并且禁止 postinstall ,会不会安全很多呢,不过自动安装的东西也有可能会自己调用 npm…
    noahjsn
        19
    noahjsn  
       11 小时 46 分钟前
    @mrchi #10
    没效果
    mrchi
        20
    mrchi  
       9 小时 32 分钟前
    @noahjsn 我试了是可以的呀

    uv-conf-test [ main][?][󰏗 v0.1.0][ v3.14.3(uv-conf-test)]
    ❯ cat ~/.config/uv/uv.toml
    exclude-newer = "7d"

    uv-conf-test [ main][?][󰏗 v0.1.0][ v3.14.3(uv-conf-test)]
    ❯ uv add fastapi
    Resolved 11 packages in 9ms
    Installed 10 packages in 6ms
    + annotated-doc==0.0.4
    + annotated-types==0.7.0
    + anyio==4.13.0
    + fastapi==0.135.3
    + idna==3.11
    + pydantic==2.12.5
    + pydantic-core==2.41.5
    + starlette==1.0.0
    + typing-extensions==4.15.0
    + typing-inspection==0.4.2

    ---

    fastapi 最新版本 0.136.0 ,安装的 0.135.3 是 4.2 发布的。Pypi: https://pypi.org/project/fastapi/#history
    diudiuu
        21
    diudiuu  
       9 小时 17 分钟前
    还可以再安装 Aikido Safe Chain 自动扫描漏洞
    npm install -g @aikidosec/safe-chain
    safe-chain setup
    liyafe1997
        22
    liyafe1997  
       4 小时 19 分钟前
    本质上还是要做好环境隔离,你这只能防 nodejs 的包被投毒,万一 homebrew 被投毒了呢?
    我的策略是,每一件事都在独立的容器/虚拟机里干,而且因为容器和虚拟机有快照机制,很方便回滚,甚至宿主 OS 和文件系统也自动快照,就算宿主被投毒,也可以一键滚回到以前的版本
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   814 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 359ms · UTC 21:42 · PVG 05:42 · LAX 14:42 · JFK 17:42
    ♥ Do have faith in what you're doing.