← 所有文章
指南

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。版本觀測可確認載入內容,但不等於完整安全評估。

分開處理部署驗收與回退準備

以下是建議執行的發布檢查,並非已完成的測試結果:

  1. 修改真正的依賴來源。 更新固定指令碼引用,或 npm 套件及鎖定檔。只修改聲明不會替換正式環境既有程式碼。
  2. 發布並檢查實際產物。 若應用程式使用快取或 service worker,確認回訪用戶亦會取得已修復版本,不要只看本機開發頁。
  3. 測試正常入口。 包括 LIFF URL、支援的外置瀏覽器流程,以及應用程式在 LINE 內置瀏覽器提供的 endpoint URL。使用正常測試連結,不使用攻擊內容。
  4. 驗證用戶流程。 檢查初始化、登入返回、導覽及實際使用的 LIFF 功能。分享功能可參考自訂操作按鈕檢查清單,不要把頁面能開啟當成分享正常的證明。
  5. 另行審查設定改動。 若同時調整 MINI App 控制台設定,參考重新審核與發布控制指南。JavaScript 已部署與控制台設定獲批是不同證據。
  6. 準備包含修復的回退版本。 保留已測試而且含安全更新的產物。不要為恢復某項功能而重新部署受影響 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。

UnifyPort API

令訊息接入變成一條穩定嘅產品管線。

先用統一嘅 API 跑通發送,再用標準事件將所有入站訊息接返去業務系統。