
vi ~/.npmrc
然后在里面加入这行:
min-release-age=7 1 BanShe 7 天前 11.x 以上可以 |
![]() | 2 blank0ken 7 天前 7day defence |
3 JasonEWNL 7 天前 其他工具链可以参考 https://daniakash.com/posts/simplest-supply-chain-defense/#beyond-Javascript 汇总。 比如 uv ( v0.9.17+): # pyproject.toml [tool.uv] exclude-newer = "7d" |
4 HappyAndSmile 7 天前 当大多数人这样做之后,会不会相当于都延迟了开启使用的时间,从而效果没想象中大呢 |
5 crocoBaby 7 天前 贴心小功能,7 天缓冲够了 |
6 lisxour 7 天前 感觉对大部分人没啥作用,主要是信息差,平时不关注这类信息的给多长时间他们也不知道,就拿我自己为例,青龙面板前段时间爆了个超严重的漏洞,可以任意改密码然后任意登录,还有路径穿越任意读取文件,我中招了 4 个月之后才知道。。。 |
7 lel020 7 天前 @HappyAndSmile 不是所有就行,总有维护者或者特别关心某些库的人一直使用最新版甚至最新内测版, 流行的库就没可能所有人都不跟踪最新版, 那就不会投毒了不被发现,极少有投毒能潜伏七天的,影响力越大的库越不可能潜伏着毒, |
8 lel020 7 天前 @lisxour 这不是针对旧版漏洞吧,已经发布的版本不能随意下架, 已经上线的漏洞也就只能你自己升级解决了, 延迟 7 天是解决类似最近 claude code 源码泄露投毒到依赖链里的情况,这种投毒都是一次性的,一下子爆发一下子熄灭,炸到多少算多少, |
9 XWZCoffee 6 天前 @HappyAndSmile 别用冷门的库,大的仓库几乎不会有你考虑的这种问题,7 天肯定是够了。 |
10 mrchi 6 天前 @JasonEWNL 补充一下,UV 可以配置在用户级,这样就不需要每个项目单独去配置了。 路径:~/.config/uv/uv.toml 直接添加 exclude-newer = "7d" 这一行即可。 |
11 gaojin 6 天前 可以看看这个项目的设计 https://github.com/jin10086/Buffer7 |
12 subpo 6 天前 安全更新似乎也会延期 7 天?需要取舍 |
13 nyaaar 6 天前 小巧思,可以的 |
14 darson 6 天前 不觉得所有的供应链投毒能够在 7 天内发现。 |
15 spediacn 6 天前 via iPhone 难,我觉得得一年,然后让 Gemini 扫一遍 |
16 natsu94 5 天前 前面的,这是“提升”安全性 |
17 ericterminal 5 天前 我有个方法,GitHub 有个叫做 Santa 的项目,利用 macOS 的 ESF ,也就是和 Linux 的 eBPF 差不多的那个做文件访问权限,只认进程不认权限,我设置了除了 ssh 自己和相关进程才可以读取~/.ssh 目录,其他的程序,比如 node 如果读的话肯定有“鬼”的,直接在内核层面拦截 |
18 netabare 5 天前 via iPhone 如果把 npm 全部用 pnpm 替代并且禁止 postinstall ,会不会安全很多呢,不过自动安装的东西也有可能会自己调用 npm… |
20 mrchi 4 天前 @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 |
22 liyafe1997 4 天前 本质上还是要做好环境隔离,你这只能防 nodejs 的包被投毒,万一 homebrew 被投毒了呢? 我的策略是,每一件事都在独立的容器/虚拟机里干,而且因为容器和虚拟机有快照机制,很方便回滚,甚至宿主 OS 和文件系统也自动快照,就算宿主被投毒,也可以一键滚回到以前的版本 |
23 rossroma 4 天前 @HappyAndSmile #4 那就改成 14d ![]() |
24 noahjsn 3 天前 @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 3 天前 @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 |