На этой странице показано, как включить проверку приложений (App Check) в приложении Flutter, используя стандартные поставщики: Play Integrity на Android, Device Check на платформах Apple и reCAPTCHA v3 в веб-версии. Включение проверки приложений гарантирует, что доступ к ресурсам Firebase вашего проекта будет только у вашего приложения. См. обзор этой функции.
1. Настройте свой проект Firebase.
Установите и инициализируйте FlutterFire, если вы еще этого не сделали.
Зарегистрируйте свои приложения для использования App Check с поставщиками Play Integrity, Device Check и reCAPTCHA в разделе «Настройки проекта > Проверка приложений» консоли Firebase.
Обычно необходимо зарегистрировать все приложения вашего проекта, поскольку после включения принудительного применения правил для продукта Firebase доступ к ресурсам бэкэнда этого продукта будет иметь только зарегистрированные приложения.
Необязательно : В настройках регистрации приложения установите пользовательское время жизни (TTL) для токенов App Check, выданных провайдером. Вы можете установить TTL на любое значение от 30 минут до 7 дней. При изменении этого значения следует учитывать следующие компромиссы:
- Безопасность: Более короткие значения TTL обеспечивают более высокую безопасность, поскольку сокращают период времени, в течение которого утечка или перехват токена могут быть использованы злоумышленником в корыстных целях.
- Производительность: Более короткие значения TTL означают, что ваше приложение будет выполнять аттестацию чаще. Поскольку процесс аттестации приложения каждый раз добавляет задержку к сетевым запросам, короткий TTL может повлиять на производительность вашего приложения.
- Квота и стоимость: Более короткие сроки действия TTL и частая повторная аттестация быстрее истощают вашу квоту, а для платных услуг могут стоить дороже. См. раздел «Квоты и лимиты» .
Значение TTL по умолчанию является разумным для большинства приложений. Обратите внимание, что библиотека App Check обновляет токены примерно через половину времени, указанного в TTL.
2. Добавьте библиотеку App Check в свое приложение.
Для установки плагина выполните следующую команду из корневой папки вашего Flutter-проекта:
flutter pub add firebase_app_checkПосле завершения пересоберите ваше 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 в ваше приложение, начните распространять обновленное приложение среди пользователей.
Обновленное клиентское приложение начнет отправлять токены App Check вместе с каждым запросом в Firebase, но для продуктов Firebase не потребуется, чтобы токены были действительными, пока вы не включите проверку в разделе App Check консоли Firebase.
Отслеживайте показатели и обеспечьте соблюдение требований.
Однако, прежде чем включать функцию принудительного применения, следует убедиться, что это не нарушит работу существующих законных пользователей. С другой стороны, если вы наблюдаете подозрительное использование ресурсов вашего приложения, возможно, стоит включить функцию принудительного применения раньше.
Чтобы помочь вам принять это решение, вы можете ознакомиться с показателями App Check для используемых вами сервисов:
- Отслеживайте метрики запросов App Check для Realtime Database, Cloud Firestore, Cloud Storage и аутентификации.
- Отслеживайте метрики запросов проверки приложений для облачных функций .
Включить принудительное выполнение проверки приложений
Когда вы поймете, как проверка приложений повлияет на ваших пользователей, и будете готовы продолжить, вы можете включить принудительное применение проверки приложений:
- Включите проверку приложений (App Check) для базы данных реального времени, облачного хранилища (Cloud Firestore), облачного хранилища (Cloud Storage) и аутентификации.
- Включите принудительное применение проверки приложений для облачных функций .
Используйте App Check в средах отладки.
Если после регистрации вашего приложения в App Check вы хотите запустить его в среде, которую App Check обычно не классифицирует как допустимую, например, в эмуляторе во время разработки или в среде непрерывной интеграции (CI), вы можете создать отладочную сборку вашего приложения, которая использует отладочный поставщик App Check вместо реального поставщика аттестации.
См. раздел «Использование проверки приложений с помощью отладчика в приложениях Flutter» .