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 欄位。較少使用的入口頁與共用前端套件,也應納入盤點。
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;必要時縮減功能或顯示受控維護頁。
若懷疑資訊曾外洩,請保留去識別化證據並交由安全負責人處理。SDK 更新處理的是相依套件問題,不能證明過去的工作階段或資料是否受影響。
客服訊息接收應獨立驗證
UnifyPort 的非官方介面透過 LINE 授權流程連接一般 LINE 訊息帳號。文件說明 QR URL 與 PIN 透過 webhook 非同步送達;這不是 LIFF 網頁初始化,也不會更新應用程式 SDK。
既有整合應將受支援的 message.received 接收流程與 MINI App 前端分開測試。收件匣正常不代表前端已修復,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 跑通傳送,再用標準事件把所有入站訊息接回業務系統。