← Все статьи
Гайд

Обновление безопасности LIFF SDK: ограничения старых версий в ноябре 2026

Если ваше приложение LIFF или LINE MINI App использует LIFF SDK v2.20.0–v2.31.0, немедленно обновите его до v2.31.1 или новее. LINE раскрыла XSS-уязвимость и планирует ограничить использование затронутых версий примерно 24 ноября 2026 года. Проверять нужно SDK, который действительно загружается в опубликованном приложении, а не только объявленную зависимость. Плановая дата ограничения — не основание откладывать исправление.

Главное

  • Диапазон затронутых версий и минимальная исправленная версия указаны в уведомлении LINE.
  • Для CDN edge, CDN с фиксированной версией и npm нужны разные проверки.
  • Тестируйте вход через внешний браузер, а не только привычную LIFF-ссылку.
  • Откат не должен возвращать уязвимый SDK. Webhook приёма сообщений — отдельный контур интеграции.

Что охватывает предупреждение о LIFF SDK

В уведомлении от 20 октября LINE описывает возможность выполнения произвольного JavaScript в домене приложения при определённых условиях: пользователь открывает LIFF или LINE MINI App во внешнем браузере по вредоносному URL. Это может привести к раскрытию данных аутентификации, например токенов доступа, и информации на экране.

Важен способ открытия. Если во встроенном браузере LINE открыть URL конечной точки приложения, а не LIFF URL, такой сценарий считается внешним браузерным потоком и тоже затронут. Проверки только обычной LIFF-ссылки недостаточно.

В новостях LINE за 2026 год начало ограничений запланировано примерно на 24 ноября. Уведомление предупреждает, что после их введения затронутые приложения могут работать некорректно во внешнем браузере. Это не точное время отключения, не общий код ошибки и не заявление об остановке всех интеграций LINE.

Проверяйте опубликованный SDK, а не только package.json

Руководство по разработке LIFF описывает подключение через CDN или npm. Для каждого рабочего приложения рекомендуем составить такую таблицу:

Способ подключенияЧто проверитьИсправление и подтверждение
CDN edgeСкрипт, загружаемый опубликованной страницейВ примечаниях к выпускам описано автоматическое обновление; всё равно проверьте фактически загруженную версию
CDN с фиксированной версиейВерсию в URL опубликованного скриптаЗамените затронутую версию исправленной и проверьте рабочую страницу
npmРазрешённую версию @line/liff, lock-файл и опубликованный bundleОбновите зависимость, пересоберите и разверните приложение, затем проверьте версию при выполнении

Примечания к выпускам разделяют эти варианты обновления. v2.31.1 — минимальная исправленная версия, а не утверждение о последнем доступном выпуске. Перед выбором более новой версии прочитайте её примечания.

Зафиксируйте владельца приложения, рабочий URL, способ подключения, разрешённую версию, идентификатор сборки и время проверки. Это рекомендуемые внутренние записи, а не новые поля LINE API. Включите редко используемые страницы входа и общие frontend-пакеты, если они загружают LIFF.

После загрузки SDK можно выполнить небольшую диагностику документированными методами:

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

Делайте это в контролируемой диагностической среде. Не добавляйте в журналы токены доступа, ID token или полные URL входа. Наблюдение за версией показывает, что загрузилось, но не заменяет полноценную оценку безопасности.

Разделите приёмку развёртывания и подготовку отката

Ниже — рекомендуемые проверки, а не результаты уже выполненного тестирования:

  1. Измените настоящий источник зависимости. Обновите фиксированную ссылку на скрипт либо npm-пакет и lock-файл. Правка манифеста сама по себе не заменяет существующий production-bundle.
  2. Проверьте опубликованные файлы. Если приложение использует кэширование или service worker, убедитесь, что повторные посетители тоже получают исправленную сборку. Локальной страницы недостаточно.
  3. Пройдите штатные маршруты входа. Проверьте LIFF URL, поддерживаемый внешний браузерный поток и URL конечной точки, если приложение открывает его во встроенном браузере LINE. Используйте обычные тестовые ссылки, не атакующие входные данные.
  4. Проверьте пользовательский сценарий. Инициализация, возврат после входа, навигация и реально используемые функции LIFF должны проверяться отдельно. Для отправки через меню выбора получателей используйте чек-лист custom action button: загрузка страницы ещё не доказывает работу этой функции.
  5. Отдельно рассмотрите изменения настроек. Если релиз меняет параметры MINI App в консоли, обратитесь к руководству по повторной проверке и публикации. Развёрнутый JavaScript и одобренная конфигурация консоли — разные подтверждения.
  6. Подготовьте исправленный вариант отката. Сохраните протестированную сборку с обновлением безопасности. Не возвращайте затронутый SDK ради восстановления одной функции; при необходимости сократите функциональность или покажите контролируемую страницу обслуживания.

Если есть подозрение на раскрытие информации, сохраните обезличенные свидетельства и подключите ответственного за безопасность. Обновление SDK устраняет проблему зависимости, но не устанавливает, были ли затронуты прошлые сеансы или данные.

Проверяйте приём обращений отдельно

Неофициальный интерфейс UnifyPort подключает обычный аккаунт LINE для обмена сообщениями через процесс авторизации LINE. Документация указывает, что QR URL и PIN поступают асинхронно через webhook. Это не инициализация веб-приложения LIFF и не обновление его SDK.

В существующей интеграции проверяйте поддерживаемый приём message.received независимо от frontend MINI App. Работающий inbox не доказывает наличие исправления на сайте, а ошибка LIFF-страницы сама по себе не указывает на сбой webhook. UnifyPort не отменяет ограничения SDK со стороны LINE и не исправляет уязвимую сборку.

Частые вопросы

Можно подождать до 24 ноября?

LINE требует обновиться немедленно. Примерно 24 ноября — плановый срок введения ограничений, а не безопасный период ожидания и не гарантированное точное время отключения.

Достаточно изменить версию npm-пакета?

Нет. Проверьте разрешённую зависимость, пересоберите и разверните приложение, затем убедитесь, какую версию загружает опубликованная страница.

Открытие внутри LINE исключает проблему?

Нет. LINE прямо относит открытие URL конечной точки во встроенном браузере к внешнему браузерному потоку. Важны и URL входа, и контекст выполнения.

Для Messaging API webhook тоже нужен новый SDK?

Уведомление касается LIFF SDK в LIFF и MINI Apps. Проверьте соответствующую frontend-зависимость; из этого уведомления нельзя выводить отдельное требование о переносе webhook.

Следующий шаг и источники

Начните с уведомления LINE о безопасности, составьте список всех рабочих входов в LIFF и приложите подтверждение загруженной версии к проверке релиза.

Официальные источники проверены 2026-11-08:

UnifyPort API

Превратите интеграцию сообщений в стабильный продуктовый pipeline.

Начните с отправки через единый API, затем возвращайте входящие сообщения в бизнес-систему стандартными событиями.