← 所有文章
指南

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 一起记录。版本观测能说明加载了什么,但不等于完整安全评估。

将部署验收与回退准备分开

以下是建议执行的发布检查,不是已经完成的测试结果:

  1. 修改真实依赖来源。 更新固定脚本引用,或 npm 包与锁文件。只改清单不会替换线上已有产物。
  2. 发布并检查实际文件。 如果应用使用缓存或 service worker,确认回访用户也能获得修复后的代码,不要只检查本地开发页。
  3. 覆盖正常入口。 测试 LIFF URL、支持的外部浏览器流程,以及应用在 LINE 内置浏览器暴露的 endpoint URL。使用正常测试链接,不使用攻击载荷。
  4. 验证用户流程。 检查初始化、登录返回、页面导航和应用实际使用的 LIFF 功能。涉及分享时,参考独立的自定义操作按钮检查清单,不要把页面能打开视为分享已正常。
  5. 单独审查配置变更。 如果发布同时调整 MINI App 控制台设置,参考重新审核与发布控制指南。JavaScript 已部署与控制台配置获批是不同证据。
  6. 准备包含修复的回退版本。 保留已测试且含安全更新的构建。不要为恢复某个功能而重新部署受影响 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。

UnifyPort API

让消息接入变成一条稳定的产品管线。

先用统一 API 跑通发送,再用标准事件把所有入站消息接回业务系统。