网易首页 > 网易号 > 正文 申请入驻

给依赖加30天冷静期,但按CLI语法写月和年会让保护完全失效

0
分享至

Deno 2.6 在去年12月推出了一项针对 npm 供应链攻击的功能:你可以让 deno installdeno add 拒绝安装发布太近的依赖。逻辑是,恶意包版本通常会在几小时或几天内被下架或举报,所以只要坚持只装"活过等待期"的依赖,就能躲开这一类攻击。

有人装了当前稳定版 Deno 2.9.6,花了一个下午拿真实 npm 包做测试。结论是:它大部分时候能工作,但存在一个静默失败模式——如果按 CLI 自身语法看起来允许的方式去配置,保护会被完全抵消。


这个 flag 是什么

相关 flag 是 --min-dep-age,它接受分钟数、ISO-8601 时长或绝对日期。CLI 帮助文本给出的说明是:--min-dep-age (Unstable),值为分钟数、ISO-8601 时长或 RFC3339 绝对时间戳,例如 '120' 表示两小时,'P2D' 表示两天,'2025-09-16' 表示截止日期,'2025-09-16T12:00:00+00:00' 表示截止时间,'0' 表示禁用。

20个包跑一遍,12个被降级

测试选了 20 个几乎每个 JavaScript 项目都会用到的包——react、vite、typescript、express、eslint、webpack 等等——在同一个项目、同样的无 lockfile 起点、同一条命令下跑了两遍:一遍不加限制,一遍加上 --min-dep-age=P30D(30天)。只有 flag 不同。

结果是 20 个包里有 12 个在 30 天策略下解析到了更老的版本。剩下 8 个——chalk、commander、dayjs、esbuild、express、lodash、prettier、typescript——没有变化,因为它们的最新版本本来就发布超过 30 天了。

其中最突出的是 vitest。它真正的最新版本 5.0.1 在测试时发布才 1.8 天。能通过 30 天门槛的最新版本是 4.1.10——整整落后一个大版本。在一个全新项目上执行 deno add npm:vitest --min-dep-age=P30D,会把你钉在去年的主版本上,没有任何错误、警告或提示。

月份和年份参数,直接失效

问题出在别的地方。CLI 帮助文本里只给了基于天的示例(P2D),但 ISO-8601 时长本身也支持月和年,而参数说明里并没有说这些单位不被支持。

--min-dep-age=P7D(7天)装 zod,得到的是 4.6.1,运行前 7.3 天发布。换成 --min-dep-age=P30D(30天),得到 4.4.3,运行前 135.9 天发布。这两个都符合预期。

但换成 --min-dep-age=P1M(1个月),得到的是 4.6.5——运行前 3.2 天发布。也就是说,用"月"作单位时,年龄过滤完全没有生效。CLI 的语法看起来允许这么写,实际却是一个静默失效模式,一旦按这种写法配置,保护就彻底归零。

不知道策略在跑,会以为是自己写错了

这种静默降级最麻烦的地方在于它不告诉你发生了什么。在一个全新项目上执行带 30 天限制的安装命令,你会被钉在去年的主版本上,而系统不会给出任何错误、警告或"存在更新主版本"的提示。如果你不知道策略正在生效,大概率会去提一个困惑的 bug 报告,说 vitest 5"装不上"。

换句话说,这个功能的设计目标——挡住刚发布的恶意版本——在按天配置时是成立的,但配置语法本身留了一个口子:写月、写年,过滤器就当没看见。对于冲着供应链安全来用这个功能的人来说,这个口子比没有功能更危险,因为它会让人误以为防护已经打开。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
办不起就别办!中国队自费住酒店,泰国队机场打地铺,印度队最惨

办不起就别办!中国队自费住酒店,泰国队机场打地铺,印度队最惨

天马幸福的人生
2026-09-17 20:25:07
房价很大可能重走1998年老路!所有人一定要提前做好心理准备

房价很大可能重走1998年老路!所有人一定要提前做好心理准备

偷喝一口奶
2026-09-11 08:36:30
懒懒才是人生赢家,戴80W粉宝石200W手表,生病时王思聪通宵陪着

懒懒才是人生赢家,戴80W粉宝石200W手表,生病时王思聪通宵陪着

小疯子耶
2026-09-01 10:31:49
频繁走光副乳外露,为了出圈博眼球,连最基本的体面都不要了?

频繁走光副乳外露,为了出圈博眼球,连最基本的体面都不要了?

仙味少女心
2026-09-15 13:25:23
在岸、离岸人民币对美元汇率双双升破6.70关口

在岸、离岸人民币对美元汇率双双升破6.70关口

澎湃新闻
2026-09-18 10:22:27
岛内军事专家指出:无论是武力统一还是和平统一都已无望,因为大陆已经开启了最令人担忧的“第三条道路”

岛内军事专家指出:无论是武力统一还是和平统一都已无望,因为大陆已经开启了最令人担忧的“第三条道路”

人生录
2026-08-27 00:05:16
贵州省3名县处级干部被开除党籍、开除公职

贵州省3名县处级干部被开除党籍、开除公职

贵阳网
2026-09-18 14:24:15
癌的源头已发现?咸菜没上榜,第1名大家或天天都在吃

癌的源头已发现?咸菜没上榜,第1名大家或天天都在吃

叙说医疗健康
2026-09-05 06:00:24
陈思诚官宣,佟丽娅不再隐瞒,原来她当年主持春晚,背后另有隐情

陈思诚官宣,佟丽娅不再隐瞒,原来她当年主持春晚,背后另有隐情

青橘罐头
2026-09-18 14:19:03
中国四戏印度

中国四戏印度

求实处
2026-09-18 00:01:54
贝林厄姆每天下午都会留在皇马训练基地,进行恢复训练,成为皇马最自律的球员

贝林厄姆每天下午都会留在皇马训练基地,进行恢复训练,成为皇马最自律的球员

福酱的小时光
2026-09-18 05:25:23
南医科大坠亡反转!导员出钱还出力,真正诱因曝光,学生一心求死

南医科大坠亡反转!导员出钱还出力,真正诱因曝光,学生一心求死

小鋭有话说
2026-09-17 22:53:01
经常走路对血管有好处吗?血管最喜欢这2件事,坚持越久越好!

经常走路对血管有好处吗?血管最喜欢这2件事,坚持越久越好!

侯医生谈健康
2026-09-14 12:50:03
恩爱23年难敌财产博弈?73岁刘銮雄近况曝光,47岁甘比手段太高明

恩爱23年难敌财产博弈?73岁刘銮雄近况曝光,47岁甘比手段太高明

乡野小珥
2026-09-18 04:55:59
河南男子在县城买下127平房子,4年后回来结婚,打开房门他愣住了

河南男子在县城买下127平房子,4年后回来结婚,打开房门他愣住了

民间精选故事汇
2025-02-01 11:20:02
大批老车主放弃全险只买交强险!交警坦言:不是胆大,是太清醒

大批老车主放弃全险只买交强险!交警坦言:不是胆大,是太清醒

你在偷看谁
2026-09-16 21:23:23
扶不扶?老人摔倒京东快递小哥施救后,反被家属索赔92万,法院还他清白

扶不扶?老人摔倒京东快递小哥施救后,反被家属索赔92万,法院还他清白

汉史趣闻
2026-09-17 09:07:10
广西教师发帖哭诉:学校教师超标9月不再续签,网友说:开班啊一对一教学比上班强多了!

广西教师发帖哭诉:学校教师超标9月不再续签,网友说:开班啊一对一教学比上班强多了!

黯泉
2026-09-18 11:07:13
一年破例两次访华!确定特朗普会来深圳 APEC ,日本欧洲被晾在一边

一年破例两次访华!确定特朗普会来深圳 APEC ,日本欧洲被晾在一边

小影的娱乐
2026-09-18 00:31:27
世体:姆巴佩两年无冠,金球给他的话会是世界足坛最大的丑闻

世体:姆巴佩两年无冠,金球给他的话会是世界足坛最大的丑闻

懂球帝
2026-09-18 15:28:17
2026-09-18 17:44:49
像素与芯片
像素与芯片
有态度网友ytd
283文章数 75关注度
往期回顾 全部

科技要闻

直击iPhone 18新机发售:黄牛加价不如前代

头条要闻

日本亚运会又出乌龙 曲棍球赛前给韩国队演奏朝鲜国歌

头条要闻

日本亚运会又出乌龙 曲棍球赛前给韩国队演奏朝鲜国歌

体育要闻

一个角色球员,靠什么在NBA征战17年

娱乐要闻

陈思诚 佟丽娅不想让儿子知道两人离婚

财经要闻

研发0.25亿理财26亿,敷尔佳豪赌三类器械

汽车要闻

纯电/插混双动力+五座/六座双布局 海狮08应该怎么选?

态度原创

本地
健康
旅游
亲子
公开课

本地新闻

中秋逛白塔寺,体验国医妙荟雅集

脑动脉瘤的治疗方法,该选哪一种?

旅游要闻

诚邀全国游客中秋国庆假期走进潍坊 开启养生润心康养之旅

亲子要闻

儿童咽喉疼痛反复发作,要紧吗

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版