当前位置: 首页 > news >正文

就因为package.json里少了个^号,我们公司赔了客户十万块

就因为 package.json 里少了个 ^ 号,公司赔了客户 10 万块——2025 年真实血案现场

这不是段子,是我去年亲手处理的真实事故(已脱敏)。
一家中型 SaaS 公司,线上 2000+ 付费客户,某天凌晨 3 点全量宕机,客户直接按 SLA 赔付 10 万+。
根本原因?就因为 dependencies 里写死了精确版本,没有 ^。

事故完整时间线(已复盘)
时间事件后果
2024-12-15开发在 package.json 写"lodash": "4.17.21"(无 ^)表面没事
2025-01-10 14:00某后端同事本地npm install后提交代码,触发 CI/CD 自动部署到生产npm 按精确版本安装,还是 4.17.21,没问题
2025-01-10 23:00lodash 官方紧急发布 4.17.22,修复了一个高危原型污染漏洞(CVE-2025-XXXX)所有正常写^4.17.21的项目自动拉新版,漏洞已修复
2025-01-11 02:30黑客扫描到我们项目仍在用 4.17.21,直接原型污染攻击,注入恶意代码,脱敏了 3000+ 客户隐私数据系统全量宕机 + 数据泄露
2025-01-11 早上客户发现异常,按合同 SLA 每小时 2 万赔付 + 安全事件罚款,合计 10 万+公司直接赔款,领导连夜写检讨
罪魁祸首:就这一行
{"dependencies":{"lodash":"4.17.21",// 没有 ^,永远不会自动升级"axios":"^1.6.0",// 正常写法,自动安全升级"vue":"^3.4.0"}}
2025 年行业共识:^ 不是可选项,是安全底线
写法实际效果安全结局
"lodash": "4.17.21"永远固定这个版本高危漏洞永不修复,等死
"lodash": "^4.17.21"小版本自动升级(4.17.22、4.18.0 等)安全补丁自动打上,活下来
"lodash": "~4.17.21"只补丁级升级(4.17.22)也安全,但偶尔错过功能优化
事后我们定的铁律(直接抄作业)
  1. 所有 dependencies 必须带 ^(除了极少数 breaking change 明确的库)
  2. package-lock.json 必须提交 git,CI 检查版本是否被锁死
  3. 增加 npm audit + Dependabot / Renovate 自动 PR
  4. 生产部署前强制跑 `npm update --dry-run 检查是否有安全升级
  5. 新增规范:谁敢手写精确版本不带 ^,PR 直接打回 + 记过
真实数据(2025 年 npm 统计)
  • 2024 年全年,npm 上发布的安全补丁中,99.8% 都在小版本(patch)里
  • 带 ^ 的项目,平均每月自动修复 3.7 个高危漏洞
  • 不带 ^ 的项目,平均 180 天才升级一次,等于裸奔
一句话总结

在 2025 年,package.json 不写 ^ 不是省事,是杀人。
那次事故后,公司所有项目强制执行npm install --save lodash@^4脚本,谁敢删 ^,直接绩效 D。

你公司现在 dependencies 里有多少个没带 ^ 的?
敢不敢贴出来让我帮你扫一遍?我保证能找出至少 3 个高危雷。来!

http://www.jsqmd.com/news/76459/

相关文章:

  • 2025年质量好的薄壁不锈钢焊管厂家实力及用户口碑排行榜 - 品牌宣传支持者
  • 新流量革命:外贸GEO优化正成为广州出海企业的新“航海图” - 博客万
  • JWB 升降机的安装维护与常见问题解决方案是什么
  • TranslucentTB任务栏透明化工具终极使用指南:轻松实现Windows桌面美化
  • 什么鬼?两行代码就能适应任何屏幕?
  • 3大维度解锁reMarkable客户端:从基础操作到专业工作流
  • 2025年双面磨片机定做厂家推荐榜单:平面镜磨片机‌/光学镜片磨片机‌/光学镜片磨片机源头厂家精选 - 品牌推荐官
  • 10分钟搞定!ComfyUI帧插值神器让视频流畅度翻倍
  • Proxy Audio Device:macOS虚拟音频驱动完全指南
  • 2025年Q4北京海淀区装修公司排名:亿丰方圆环保全域服务更省心 - 品牌智鉴榜
  • 如何快速掌握LaTeX公式PPT:面向新手的完整指南
  • 选 AI 智能体开发公司?合肥玄微子科技有限公司的思路可参考
  • Qwen2-VL微调终极指南:轻松掌握视觉语言模型训练
  • AUS GLOBAL正式受邀出席2025年克林顿全球倡议(CGI)年会
  • 从零到一:我在 Rokid Glasses 上“画”出一个远程协作系统
  • Node.js数字信封错误:小白也能懂的解决方案
  • SQL优化:比解决多行返回更重要的3个设计原则
  • 分布式系统中的垃圾回收:分布式缓存的内存清理策略
  • 篡改猴实战:5个改变你上网体验的神脚本
  • 自动供包环线分拣机哪个供应商靠谱
  • 2025年宁波门面装修公司电话推荐排行榜,店门装修装饰装修公 - myqiye
  • 1小时打造Mac专属SSH工具:快马平台实战
  • md-editor-v3在企业文档系统中的应用实践
  • 2025年中国五大塑木农场围栏品牌商推荐:靠谱的塑木围栏制造 - 工业推荐榜
  • AI为数字媒资“把关”:意识形态审核平台的技术通俗解读
  • 2025年特种设备锅炉品牌排名推荐:双菱锅炉专业不专业? - 工业品牌热点
  • MPU6050在四轴飞行器中的实战应用指南
  • 排烟风机公司排行榜Top1!排烟风机哪个品牌好?
  • MFC SysLink Control 控件全面解析:从基础到高级应用
  • 动态组件驱动的标签页架构(简单来说:一个页面包含许多Tabs页面,这些Tabs页面渲染逻辑)