Na tej stronie dowiesz się, jak włączyć Sprawdzanie aplikacji w aplikacji Flutter przy użyciu domyślnych dostawców: Play Integrity na Androidzie, Device Check na platformach Apple i reCAPTCHA v3 w internecie. Gdy włączysz Sprawdzanie aplikacji, będziesz mieć pewność, że tylko Twoja aplikacja ma dostęp do zasobów Firebase w projekcie. Zobacz omówienie tej funkcji.
1. Konfigurowanie projektu w Firebase
Jeśli jeszcze tego nie zrobiono, zainstaluj i zainicjuj FlutterFire.
Zarejestruj aplikacje, aby używać Sprawdzania aplikacji z dostawcami Play Integrity, Device Check i reCAPTCHA w sekcji Ustawienia projektu > Sprawdzanie aplikacji w konsoli Firebase.
Zwykle musisz zarejestrować wszystkie aplikacje w projekcie, ponieważ po włączeniu egzekwowania zasad w przypadku usługi Firebase tylko zarejestrowane aplikacje będą mogły uzyskiwać dostęp do zasobów backendu tej usługi.
Opcjonalnie: w ustawieniach rejestracji aplikacji ustaw niestandardowy czas życia danych (TTL) dla tokenów Sprawdzania aplikacji wydawanych przez dostawcę. Możesz ustawić czas życia na dowolną wartość z zakresu od 30 minut do 7 dni. Zmieniając tę wartość, pamiętaj o tych kompromisach:
- Bezpieczeństwo: krótsze wartości TTL zapewniają większe bezpieczeństwo, ponieważ skracają okres, w którym wyciekły lub przechwycony token może zostać wykorzystany przez atakującego.
- Wydajność: krótsze czasy TTL oznaczają, że aplikacja będzie częściej przeprowadzać atestowanie. Proces potwierdzania aplikacji za każdym razem, gdy jest wykonywany, zwiększa opóźnienie w przypadku żądań sieciowych, dlatego krótki czas TTL może mieć wpływ na wydajność aplikacji.
- Limit i koszt: krótsze czasy TTL i częste ponowne potwierdzanie wyczerpują limit szybciej, a w przypadku usług płatnych mogą generować wyższe koszty. Zobacz Limity przydziału i limity systemu.
Domyślna wartość TTL jest odpowiednia w przypadku większości aplikacji. Pamiętaj, że biblioteka Sprawdzania aplikacji odświeża tokeny mniej więcej w połowie czasu życia (TTL).
2. Dodawanie biblioteki Sprawdzania aplikacji do aplikacji
Aby zainstalować wtyczkę, uruchom to polecenie w katalogu głównym projektu Flutter:
flutter pub add firebase_app_checkPo zakończeniu ponownie skompiluj aplikację Flutter:
flutter run
3. Inicjowanie Sprawdzania aplikacji
Dodaj do aplikacji poniższy kod inicjowania, aby był on wykonywany przed użyciem jakichkolwiek usług Firebase, takich jak Storage, ale po wywołaniu 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());
}
Dalsze kroki
Po zainstalowaniu w aplikacji biblioteki Sprawdzania aplikacji zacznij rozpowszechniać zaktualizowaną aplikację wśród użytkowników.
Zaktualizowana aplikacja kliencka zacznie wysyłać tokeny Sprawdzania aplikacji wraz z każdym żądaniem wysyłanym do Firebase, ale usługi Firebase nie będą wymagać, aby tokeny były ważne, dopóki nie włączysz egzekwowania w sekcji Sprawdzanie aplikacji w konsoli Firebase.
Monitorowanie danych i włączanie egzekwowania
Zanim jednak włączysz egzekwowanie, upewnij się, że nie zakłóci to działania obecnych, legalnych użytkowników. Jeśli jednak zauważysz podejrzane wykorzystanie zasobów aplikacji, możesz włączyć egzekwowanie wcześniej.
Aby ułatwić sobie podjęcie tej decyzji, możesz sprawdzić dane usługi Sprawdzanie aplikacji dotyczące usług, z których korzystasz:
- Monitoruj wskaźniki żądań Sprawdzania aplikacji w przypadku Bazy danych czasu rzeczywistego, Cloud Firestore, Cloud Storage i uwierzytelniania.
- Monitorowanie danych żądań Sprawdzania aplikacji w Cloud Functions
Włączanie wymuszania Sprawdzania aplikacji
Gdy zrozumiesz, jak Sprawdzanie aplikacji wpłynie na użytkowników, i będziesz gotowy(-a) do kontynuowania, możesz włączyć wymuszanie Sprawdzania aplikacji:
- Włącz egzekwowanie Sprawdzania aplikacji w przypadku Bazy danych czasu rzeczywistego, Cloud Firestore, Cloud Storage i Uwierzytelniania.
- Włącz wymuszanie Sprawdzania aplikacji w przypadku Cloud Functions.
Używanie usługi Sprawdzanie aplikacji w środowiskach debugowania
Jeśli po zarejestrowaniu aplikacji w Sprawdzaniu aplikacji chcesz uruchomić ją w środowisku, które Sprawdzanie aplikacji zwykle nie klasyfikuje jako prawidłowe, np. w emulatorze podczas programowania lub w trybie ciągłej integracji (CI), możesz utworzyć kompilację do debugowania aplikacji, która zamiast prawdziwego dostawcy atestów używa dostawcy debugowania Sprawdzania aplikacji.
Zobacz Korzystanie ze Sprawdzania aplikacji z dostawcą debugowania w aplikacjach we Flutterze.