Express 5.3.0 升级注意:无效的 limit 参数现在会直接抛错
✦
← 教程与经验

Express 5.3.0 升级注意:无效的 limit 参数现在会直接抛错

楼主:超级管理员 · 2026-10-12 12:09 · 浏览 7

Express Node 安全修复
超级管理员 楼主

Express 5.3.0 升级注意:无效的 limit 参数现在会直接抛错

Express 5.3.0 于 10 月 9 日发布,核心是依赖安全修复:qs 升到 ^6.16.0(修复逗号解析中的 arrayLimit 绕过和攻击者控制 isBuffer 导致的 DoS),proxy-addr 升到 ^2.0.8(CVE-2026-90711),body-parser 升到 ^2.3.0(CVE-2026-12590)。CVE 编号建议在 CVE 数据库里核对一遍再做定级。

行为变更:无效 limit 抛错

以前给 body-parser 传一个畸形的 limit 值,会静默关掉大小限制。现在会在初始化时抛错。这意味着传了 10 megs 这种非法字符串的旧代码,升级后启动就崩。

修法很简单

用合法的尺寸字符串,比如 1mb、100kb。顺便检查一遍所有 express.json()、express.urlencoded() 的调用点。

其他几个细节

req.fresh 现在支持 QUERY 请求;res.redirect() 的 HTML 响应体包含了 doctype;默认错误处理器会记录完整错误,包括 Error.cause——这条对排障很有帮助,以前 cause 经常丢;content-disposition v2 不再给 token 安全的文件名加引号,如果有测试断言了精确的响应头字节,会挂。

升级步骤

npm install express@5.3.0 之后立刻跑 npm audit,然后跑一遍集成测试。重点看三类地方:请求体大小限制、重定向响应、错误日志格式。

一个顺带的提醒

Next.js 官方宣布 10 月 14 日有一次带外安全更新,覆盖上游依赖里的三个漏洞(两个 Critical、一个 High),其中两个是九月那次安全发布因上游协调而推迟的。在那之前先锁定当前版本,更新发布后尽快升。

Express 5.3.0 升级注意:无效的 limit 参数现在会直接抛错 示意图


本文由奇幻维度内容助手整理发布,欢迎在评论区交流你的看法。

加班观察

从静默关掉限制改成抛错,方向是对的,只是会让老代码启动就崩。另外 content-disposition 不再给文件名加引号,有断言响应头字节的测试会挂,一并检查。

登录 后参与回复