Начните использовать проверку приложений в приложениях Flutter

На этой странице показано, как включить App Check в приложении Flutter, используя поставщиков по умолчанию: Play Integrity на Android, Device Check на платформах Apple и reCAPTCHA v3 в сети. Когда вы включаете App Check, вы помогаете гарантировать, что только ваше приложение может получить доступ к ресурсам Firebase вашего проекта. См. Обзор этой функции.

1. Настройте свой проект Firebase

  1. Установите и инициализируйте FlutterFire, если вы еще этого не сделали.

  2. Зарегистрируйте свои приложения для использования проверки приложений с помощью поставщиков Play Integrity, Device Check и reCAPTCHA в разделе «Настройки проекта» > «Проверка приложений» консоли Firebase.

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

  3. Необязательно : в настройках регистрации приложения установите пользовательское время жизни (TTL) для токенов App Check, выпущенных поставщиком. Вы можете установить TTL на любое значение от 30 минут до 7 дней. При изменении этого значения помните о следующих компромиссах:

    • Безопасность: Более короткие значения TTL обеспечивают более высокую безопасность, поскольку сокращают период времени, в течение которого злоумышленник может злоупотребить утечкой или перехватом токена.
    • Производительность: Более короткие TTL означают, что ваше приложение будет выполнять аттестацию чаще. Поскольку процесс аттестации приложения добавляет задержку к сетевым запросам каждый раз, когда он выполняется, короткий TTL может повлиять на производительность вашего приложения.
    • Квота и стоимость: Более короткие TTL и частая повторная аттестация быстрее исчерпывают вашу квоту, а для платных услуг, возможно, стоят дороже. См. Квоты и ограничения .

    Значение TTL по умолчанию является разумным для большинства приложений. Обратите внимание, что библиотека App Check обновляет токены примерно через половину продолжительности TTL.

2. Добавьте библиотеку App Check в свое приложение.

  1. Из корня вашего проекта Flutter выполните следующую команду для установки плагина:

    flutter pub add firebase_app_check
    
  2. После завершения перестройте приложение Flutter:

    flutter run
    

3. Инициализация проверки приложения

Добавьте следующий код инициализации в свое приложение, чтобы оно запускалось до использования любых служб Firebase, таких как Storage, но после вызова Firebase.initializeApp() ;

import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';

// Import the firebase_app_check plugin
import 'package:firebase_app_check/firebase_app_check.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  await FirebaseAppCheck.instance.activate(
    // You can also use a `ReCaptchaEnterpriseProvider` provider instance as an
    // argument for `webProvider`
    webProvider: ReCaptchaV3Provider('recaptcha-v3-site-key'),
    // Default provider for Android is the Play Integrity provider. You can use the "AndroidProvider" enum to choose
    // your preferred provider. Choose from:
    // 1. Debug provider
    // 2. Safety Net provider
    // 3. Play Integrity provider
    androidProvider: AndroidProvider.debug,
    // Default provider for iOS/macOS is the Device Check provider. You can use the "AppleProvider" enum to choose
        // your preferred provider. Choose from:
        // 1. Debug provider
        // 2. Device Check provider
        // 3. App Attest provider
        // 4. App Attest provider with fallback to Device Check provider (App Attest provider is only available on iOS 14.0+, macOS 14.0+)
    appleProvider: AppleProvider.appAttest,
  );
  runApp(App());
}

Следующие шаги

После установки библиотеки App Check в ваше приложение начните распространять обновленное приложение среди пользователей.

Обновленное клиентское приложение начнет отправлять токены проверки приложений вместе с каждым запросом, который оно делает в Firebase, но продукты Firebase не будут требовать, чтобы токены были действительными, пока вы не включите принудительное применение в разделе проверки приложений в консоли Firebase.

Мониторинг показателей и обеспечение соблюдения

Однако перед включением принудительного применения следует убедиться, что это не помешает вашим существующим законным пользователям. С другой стороны, если вы видите подозрительное использование ресурсов вашего приложения, вы можете включить принудительное применение раньше.

Чтобы принять решение, вы можете изучить показатели App Check для используемых вами сервисов:

Включить принудительное выполнение проверки приложений

Когда вы поймете, как проверка приложений повлияет на ваших пользователей, и будете готовы продолжить, вы можете включить принудительное выполнение проверки приложений:

Используйте App Check в отладочных средах

Если после регистрации приложения для App Check вы хотите запустить его в среде, которую App Check обычно не классифицирует как допустимую, например, в эмуляторе во время разработки или в среде непрерывной интеграции (CI), вы можете создать отладочную сборку своего приложения, которая использует поставщик отладки App Check вместо настоящего поставщика подтверждения подлинности.

См. раздел Использование проверки приложений с поставщиком отладки в приложениях Flutter .