← Tất cả bài viết
Cẩm nang

Cập nhật bảo mật LIFF SDK trước hạn chế phiên bản cũ tháng 11/2026

Nếu LIFF hoặc LINE MINI App của bạn dùng LIFF SDK v2.20.0–v2.31.0, hãy cập nhật ngay lên v2.31.1 hoặc mới hơn. LINE đã công bố lỗ hổng XSS và dự kiến hạn chế các phiên bản bị ảnh hưởng vào khoảng ngày 24/11/2026. Cần kiểm tra SDK thực sự được tải trong ứng dụng đã xuất bản, không chỉ phiên bản khai báo trong dependency. Đây là thời điểm hạn chế dự kiến, không phải lý do để trì hoãn bản vá.

Những điểm chính

  • Phạm vi phiên bản bị ảnh hưởng và phiên bản tối thiểu đã sửa lỗi được nêu trong thông báo bảo mật của LINE.
  • CDN edge, CDN cố định phiên bản và npm cần các bước kiểm tra khác nhau.
  • Kiểm thử cả luồng vào từ trình duyệt ngoài, không chỉ liên kết LIFF quen thuộc.
  • Phương án quay lui không được đưa SDK có lỗ hổng trở lại. Webhook nhận tin nhắn là một lớp tích hợp riêng.

Cảnh báo LIFF SDK áp dụng cho điều gì?

Thông báo ngày 20/10 của LINE mô tả khả năng thực thi JavaScript tùy ý trên tên miền ứng dụng trong một số điều kiện khi URL độc hại mở LIFF hoặc LINE MINI App bằng trình duyệt ngoài. Thông tin xác thực, chẳng hạn access token, và thông tin hiển thị trên màn hình có thể bị lộ.

Thông báo cũng phân biệt rõ cách mở ứng dụng: mở endpoint URL trong trình duyệt tích hợp của LINE thay vì LIFF URL được xem là luồng trình duyệt ngoài và cũng bị ảnh hưởng. Vì vậy, chỉ thử đường vào LIFF thường dùng chưa đủ để kiểm tra toàn bộ bản triển khai.

Trang tin LINE năm 2026 ghi thời điểm hạn chế dự kiến là khoảng ngày 24/11. Thông báo bảo mật cho biết sau khi hạn chế bắt đầu, ứng dụng dùng phiên bản bị ảnh hưởng có thể hoạt động không đúng trong trình duyệt ngoài. Không nên diễn giải thành giờ ngừng hoạt động chính xác, một mã lỗi chung hay việc mọi tích hợp LINE đều sẽ dừng.

Kiểm kê SDK đã triển khai, không chỉ package.json

Hướng dẫn phát triển LIFF mô tả cách tích hợp qua CDN và npm. Nên lập bảng kiểm kê sau cho từng ứng dụng production:

Cách cài đặtĐối tượng cần kiểm traCập nhật và xác nhận
Đường dẫn CDN edgeScript mà trang đã xuất bản tảiGhi chú phát hành mô tả cập nhật tự động; vẫn xác nhận phiên bản thực sự được tải
CDN cố định phiên bảnPhiên bản trong URL script đã triển khaiĐổi phiên bản bị ảnh hưởng sang bản đã sửa lỗi và kiểm tra trang production
Gói npmPhiên bản @line/liff đã resolve, lockfile và bundleCập nhật dependency, build và deploy lại, sau đó xác nhận phiên bản lúc chạy

Ghi chú phát hành phân biệt các cách cập nhật này. v2.31.1 là phiên bản tối thiểu đã sửa lỗi, không có nghĩa đó là bản mới nhất. Hãy đọc ghi chú của phiên bản mới hơn mà bạn chọn trước khi triển khai.

Ghi lại người phụ trách, URL production, cách tích hợp, phiên bản đã resolve, mã định danh build và thời gian xác minh. Đây là thông tin quản lý nội bộ được đề xuất, không phải trường mới của LINE API. Đừng bỏ sót các trang đích ít dùng hoặc gói frontend dùng chung có tải LIFF.

Sau khi SDK được tải, có thể dùng các phương thức môi trường đã được tài liệu hóa để chẩn đoán đơn giản:

console.log(liff.getVersion());
console.log(liff.isInClient());

Chỉ chạy trong bối cảnh chẩn đoán có kiểm soát. Không ghi access token, ID token hay URL đăng nhập đầy đủ vào log. Quan sát phiên bản giúp xác định mã đã tải, nhưng không thay thế đánh giá bảo mật toàn diện.

Tách nghiệm thu triển khai khỏi phương án quay lui

Dưới đây là các bước kiểm tra được đề xuất, không phải kết quả kiểm thử đã thực hiện:

  1. Sửa đúng nguồn dependency. Cập nhật tham chiếu script cố định, hoặc gói npm cùng lockfile. Chỉ sửa khai báo không thay thế bundle đang có trên production.
  2. Xuất bản và kiểm tra artifact thực tế. Nếu ứng dụng dùng cache hoặc service worker, xác nhận người dùng quay lại cũng nhận được bản đã sửa. Không chỉ kiểm tra trang phát triển trên máy cá nhân.
  3. Thử các đường vào hợp lệ. Bao gồm LIFF URL, luồng trình duyệt ngoài được hỗ trợ và endpoint URL mà ứng dụng mở trong trình duyệt tích hợp LINE. Dùng liên kết kiểm thử bình thường, không dùng dữ liệu tấn công.
  4. Kiểm tra hành trình người dùng. Xác nhận khởi tạo, quay về sau đăng nhập, điều hướng và những chức năng LIFF thực sự được sử dụng. Với chia sẻ, tham khảo danh sách kiểm tra custom action button; tải trang thành công chưa chứng minh tính năng chia sẻ hoạt động.
  5. Xem xét thay đổi cấu hình riêng. Nếu đợt triển khai còn đổi cài đặt MINI App trong console, đọc hướng dẫn xét duyệt lại và kiểm soát phát hành. JavaScript đã deploy và cấu hình console đã được duyệt là hai bằng chứng khác nhau.
  6. Chuẩn bị bản quay lui vẫn chứa bản vá. Giữ artifact đã kiểm thử có cập nhật bảo mật. Không phục hồi SDK bị ảnh hưởng chỉ để khôi phục một tính năng; nếu cần, giảm chức năng hoặc hiển thị trang bảo trì có kiểm soát.

Nếu nghi ngờ thông tin từng bị lộ, hãy lưu bằng chứng đã che dữ liệu nhạy cảm và liên hệ người phụ trách bảo mật. Cập nhật SDK giải quyết vấn đề dependency này, nhưng không chứng minh các phiên hay dữ liệu trước đó có bị ảnh hưởng hay không.

Kiểm tra nhận tin nhắn hỗ trợ một cách độc lập

Giao diện không chính thức của UnifyPort kết nối tài khoản nhắn tin LINE thông thường qua luồng xác thực LINE. Tài liệu nêu QR URL và PIN được gửi bất đồng bộ qua webhook. Đây không phải quá trình khởi tạo trang LIFF và không cập nhật SDK của ứng dụng.

Với tích hợp hiện có, kiểm thử luồng nhận message.received được hỗ trợ riêng với frontend MINI App. Hộp thư hoạt động không chứng minh frontend đã được vá, còn trang LIFF lỗi cũng không tự xác định được lỗi webhook. UnifyPort không thể gỡ hạn chế SDK của LINE hay sửa bundle có lỗ hổng.

Câu hỏi thường gặp

Có thể chờ đến 24/11 mới cập nhật không?

LINE yêu cầu cập nhật ngay. Khoảng ngày 24/11 là thời điểm hạn chế dự kiến, không phải khoảng chờ an toàn hay thời hạn chính xác được bảo đảm.

Chỉ đổi phiên bản npm có đủ không?

Không. Xác nhận dependency đã resolve, build và deploy lại, rồi kiểm tra phiên bản được tải trên trang đã xuất bản.

Mở trang bên trong LINE có loại trừ rủi ro này không?

Không. LINE nêu rõ việc mở endpoint URL trong trình duyệt tích hợp được tính là luồng trình duyệt ngoài. Cần xem cả URL đầu vào và môi trường thực thi.

Webhook Messaging API cũng cần SDK mới sao?

Thông báo này nói về LIFF SDK trong LIFF và MINI App. Hãy kiểm tra dependency frontend bị ảnh hưởng; không nên suy ra một yêu cầu chuyển đổi webhook riêng từ thông báo đó.

Bước tiếp theo và nguồn tham khảo

Bắt đầu từ thông báo bảo mật LINE, kiểm kê mọi điểm vào LIFF trên production và đính kèm bằng chứng phiên bản thực sự được tải khi duyệt phát hành.

Nguồn chính thức được kiểm tra ngày 2026-11-08:

UnifyPort API

Biến tích hợp nhắn tin thành một pipeline sản phẩm ổn định.

Bắt đầu bằng cách gửi qua một API, rồi đưa mọi tin nhắn inbound trở lại hệ thống kinh doanh bằng sự kiện chuẩn.