vi ~/.npmrc
然后在里面加入这行:
min-release-age=7
1
BanShe Apr 16
11.x 以上可以
|
2
blank0ken Apr 16
7day defence
|
3
JasonEWNL Apr 16 其他工具链可以参考 https://daniakash.com/posts/simplest-supply-chain-defense/#beyond-javascript 汇总。
比如 uv ( v0.9.17+): # pyproject.toml [tool.uv] exclude-newer = "7d" |
4
HappyAndSmile Apr 17
当大多数人这样做之后,会不会相当于都延迟了开启使用的时间,从而效果没想象中大呢
|
5
crocoBaby Apr 17
贴心小功能,7 天缓冲够了
|
6
lisxour Apr 17
感觉对大部分人没啥作用,主要是信息差,平时不关注这类信息的给多长时间他们也不知道,就拿我自己为例,青龙面板前段时间爆了个超严重的漏洞,可以任意改密码然后任意登录,还有路径穿越任意读取文件,我中招了 4 个月之后才知道。。。
|
7
lel020 Apr 17
@HappyAndSmile 不是所有就行,总有维护者或者特别关心某些库的人一直使用最新版甚至最新内测版, 流行的库就没可能所有人都不跟踪最新版, 那就不会投毒了不被发现,极少有投毒能潜伏七天的,影响力越大的库越不可能潜伏着毒,
|
8
lel020 Apr 17
@lisxour 这不是针对旧版漏洞吧,已经发布的版本不能随意下架, 已经上线的漏洞也就只能你自己升级解决了,
延迟 7 天是解决类似最近 claude code 源码泄露投毒到依赖链里的情况,这种投毒都是一次性的,一下子爆发一下子熄灭,炸到多少算多少, |
9
XWZCoffee Apr 17
@HappyAndSmile 别用冷门的库,大的仓库几乎不会有你考虑的这种问题,7 天肯定是够了。
|
10
mrchi Apr 17 @JasonEWNL 补充一下,UV 可以配置在用户级,这样就不需要每个项目单独去配置了。
路径:~/.config/uv/uv.toml 直接添加 exclude-newer = "7d" 这一行即可。 |
11
gaojin Apr 17
可以看看这个项目的设计 https://github.com/jin10086/Buffer7
|
12
subpo Apr 17
安全更新似乎也会延期 7 天?需要取舍
|
13
nyaaar Apr 17
小巧思,可以的
|
14
darson Apr 17
不觉得所有的供应链投毒能够在 7 天内发现。
|
15
spediacn Apr 18 via iPhone
难,我觉得得一年,然后让 Gemini 扫一遍
|
16
natsu94 Apr 18
前面的,这是“提升”安全性
|
17
ericterminal Apr 18 我有个方法,GitHub 有个叫做 Santa 的项目,利用 macOS 的 ESF ,也就是和 Linux 的 eBPF 差不多的那个做文件访问权限,只认进程不认权限,我设置了除了 ssh 自己和相关进程才可以读取~/.ssh 目录,其他的程序,比如 node 如果读的话肯定有“鬼”的,直接在内核层面拦截
|
18
netabare Apr 19 via iPhone
如果把 npm 全部用 pnpm 替代并且禁止 postinstall ,会不会安全很多呢,不过自动安装的东西也有可能会自己调用 npm…
|
20
mrchi Apr 19
@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 |
21
diudiuu Apr 19
|
22
liyafe1997 Apr 20
本质上还是要做好环境隔离,你这只能防 nodejs 的包被投毒,万一 homebrew 被投毒了呢?
我的策略是,每一件事都在独立的容器/虚拟机里干,而且因为容器和虚拟机有快照机制,很方便回滚,甚至宿主 OS 和文件系统也自动快照,就算宿主被投毒,也可以一键滚回到以前的版本 |
23
rossroma Apr 20
@HappyAndSmile #4 那就改成 14d
![]() |
24
noahjsn Apr 20
@mrchi #20
还是不行。你用下面的命令试下呢? $ uv init my-demo-project-1 $ cd my-demo-project-1/ $ uv venv $ source .venv/bin/activate $ uv add fastapi Resolved 11 packages in 11ms ... + fastapi==0.136.0 |
26
mrchi Apr 20
@noahjsn 用了你的命令测试也是 OK 的。(中间有个报错,因为我用的是 fish shell ,激活虚拟环境时要用 fish 脚本)
~/PlayGround ❯ cd my-demo-project-1/ my-demo-project-1 [ main][?][ v0.1.0][ v3.9.6] ❯ uv venv Using CPython 3.14.3 Creating virtual environment at: .venv Activate with: source .venv/bin/activate.fish my-demo-project-1 [ main][?][ v0.1.0][ v3.9.6] ❯ source .venv/bin/activate .venv/bin/activate (line 26): Unsupported use of '='. In fish, please use 'set _OLD_SCRIPT_PATH "$SCRIPT_PATH"'. _OLD_SCRIPT_PATH="$SCRIPT_PATH" ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ from sourcing file .venv/bin/activate source: Error while reading file '.venv/bin/activate' my-demo-project-1 [ main][?][ v0.1.0][ v3.9.6] ❯ source .venv/bin/activate.fish my-demo-project-1 [ main][?][ v0.1.0][ v3.14.3(my-demo-project-1)] ❯ uv add fastapi Resolved 11 packages in 3.69s Prepared 2 packages in 1.99s Installed 10 packages in 16ms + annotated-doc==0.0.4 + annotated-types==0.7.0 + anyio==4.13.0 + fastapi==0.135.3 + idna==3.11 + pydantic==2.13.0 + pydantic-core==2.46.0 + starlette==1.0.0 + typing-extensions==4.15.0 + typing-inspection==0.4.2 |
27
player3 Apr 26
尝试了这个设置,使用良好。
然后今天出现 codex 死活升级不到 0.125.0 ,一直是 0.121.0 ,排查了半天发现是这配置导致的。 现在的 ai 工具一天发几个版本,大家有遇到无法升级可以参照下。😂 |
28
kasusa Apr 28
@HappyAndSmile 实际上肯定不会大多数人都这么配置。
|