LIFF SDK 安全升级:应对 2026 年 11 月旧版本限制
如果你的 LIFF 或 LINE MINI App 使用 LIFF SDK v2.20.0–v2.31.0,应立即升级至 v2.31.1 或更高版本。LINE 已披露 XSS 漏洞,并计划约在 2026 年 11 月 24 日限制受影响的旧版本。需要确认的是正式应用实际加载的 SDK,而不只是依赖声明。这个日期是预计实施时间,不是可以推迟安全修复的理由。
要点
- 受影响范围与最低修复版本以 LINE 安全公告为依据。
- CDN edge、固定版本 CDN 和 npm 的检查方式不同。
- 除了常用 LIFF 链接,还要检查外部浏览器入口。
- 回退方案不能恢复有漏洞的 SDK;消息 webhook 属于另一个集成层。
LINE 的 LIFF SDK 警告覆盖什么
LINE 在 10 月 20 日公告中说明:特定条件下,恶意 URL 在外部浏览器打开 LIFF 或 LINE MINI App 时,可能在应用域名下执行任意 JavaScript,进而暴露访问令牌等认证信息及屏幕显示的信息。
公告特别区分了入口:在 LINE 内置浏览器打开应用的 endpoint URL,而不是 LIFF URL,会被视为外部浏览器流程,同样受到影响。因此,只测试惯用的 LIFF 入口并不足够。
LINE 2026 年公告列表将限制时间表述为约 11 月 24 日。安全公告指出,限制开始后,外部浏览器中的受影响应用可能无法正常工作。不要将其解释为精确停机时刻、统一错误码,或所有 LINE 集成都将停止运行。
盘点实际部署版本,而不只是 package.json
LINE 的 LIFF 开发指南记录了 CDN 与 npm 接入方式。建议按每个正式应用建立以下清单:
| 接入方式 | 检查对象 | 修复与确认 |
|---|---|---|
| CDN edge 路径 | 正式页面实际加载的脚本 | 官方发行说明描述了自动更新;仍需核对页面加载的版本 |
| 固定版本 CDN 路径 | 已部署脚本 URL 中的版本 | 将受影响的固定版本改为已修复版本,再检查正式页面 |
| npm 包 | @line/liff 解析版本、锁文件及构建产物 | 更新依赖、重新构建与部署,再确认运行时版本 |
官方发行说明区分了这些更新路径。v2.31.1 是最低修复版本,不代表它是最新版本;选择更高版本时也应阅读相应说明。
为每项记录负责人、正式 URL、接入方式、解析版本、部署构建标识及验证时间。这些是建议的内部记录,不是新增 LINE API 字段。出海团队还应检查各市场入口页和共用前端包是否加载 LIFF。
SDK 加载后,可用官方环境方法做小范围诊断:
console.log(liff.getVersion());
console.log(liff.isInClient());
只在受控诊断环境执行,不要连同访问令牌、ID token 或完整登录 URL 一起记录。版本观测能说明加载了什么,但不等于完整安全评估。
将部署验收与回退准备分开
以下是建议执行的发布检查,不是已经完成的测试结果:
- 修改真实依赖来源。 更新固定脚本引用,或 npm 包与锁文件。只改清单不会替换线上已有产物。
- 发布并检查实际文件。 如果应用使用缓存或 service worker,确认回访用户也能获得修复后的代码,不要只检查本地开发页。
- 覆盖正常入口。 测试 LIFF URL、支持的外部浏览器流程,以及应用在 LINE 内置浏览器暴露的 endpoint URL。使用正常测试链接,不使用攻击载荷。
- 验证用户流程。 检查初始化、登录返回、页面导航和应用实际使用的 LIFF 功能。涉及分享时,参考独立的自定义操作按钮检查清单,不要把页面能打开视为分享已正常。
- 单独审查配置变更。 如果发布同时调整 MINI App 控制台设置,参考重新审核与发布控制指南。JavaScript 已部署与控制台配置获批是不同证据。
- 准备包含修复的回退版本。 保留已测试且含安全更新的构建。不要为恢复某个功能而重新部署受影响 SDK;必要时缩减功能或展示受控维护页。
如果怀疑信息曾暴露,应保留脱敏证据并交由安全负责人处理。升级解决的是依赖问题,并不能证明过去的会话或数据是否受到影响。
客服消息接入要独立验证
UnifyPort 的非官方接口通过 LINE 授权流程连接普通 LINE 消息账号。文档说明 QR URL 与 PIN 通过 webhook 异步到达;这不是 LIFF 网页初始化,也不会更新应用的 SDK。
已有集成应独立测试受支持的 message.received 接收流程。收件箱正常不代表前端已经修复,LIFF 页面失败也不能单独证明 webhook 出错。UnifyPort 不能解除 LINE 的 SDK 限制或修复有漏洞的构建。
常见问题
可以等到 11 月 24 日再升级吗?
LINE 要求立即更新。约 11 月 24 日是预计限制时间,不是安全等待期,也不是精确保证的截止时刻。
只修改 npm 版本就够了吗?
不够。确认解析后的依赖,重新构建并部署,再检查正式页面实际加载的版本。
页面在 LINE 内打开就不受影响吗?
不是。LINE 明确指出,在内置浏览器打开 endpoint URL 属于外部浏览器流程。入口 URL 与执行环境都需要检查。
Messaging API webhook 也要换 SDK 吗?
这份公告针对 LIFF 与 MINI App 的 LIFF SDK。应检查受影响的前端依赖,不能由此推导出另一项 webhook 迁移要求。
下一步与参考资料
从 LINE 安全公告开始,盘点每个正式 LIFF 入口,并在发布审查中附上实际加载版本的证据。
官方来源核对日期:2026-11-08。
让消息接入变成一条稳定的产品管线。
先用统一 API 跑通发送,再用标准事件把所有入站消息接回业务系统。