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 跑通發送,再用標準事件將所有入站訊息接返去業務系統。