Pierwsze kroki z funkcją Sprawdzanie aplikacji w aplikacjach Flutter

Na tej stronie dowiesz się, jak włączyć Sprawdzanie aplikacji w aplikacji Flutter za pomocą 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 może uzyskiwać dostęp do zasobów Firebase w Twoim projekcie. Zobacz omówienie tej funkcji.

1. Konfigurowanie projektu Firebase

  1. Zainstaluj i zainicjuj FlutterFire, jeśli nie zostało to jeszcze zrobione.

  2. W konsoli Firebase otwórz Zabezpieczenia > Sprawdzanie aplikacji.

  3. Na karcie Aplikacje zarejestruj swoje aplikacje, aby korzystać ze App Check z dostawcami Play Integrity, DeviceCheck i reCAPTCHA.

    Zwykle musisz zarejestrować wszystkie aplikacje w projekcie, ponieważ po włączeniu egzekwowania w przypadku usługi Firebase tylko zarejestrowane aplikacje będą mogły uzyskiwać dostęp do zasobów backendu tej usługi.

  4. Opcjonalnie: w ustawieniach rejestracji aplikacji ustaw niestandardowy czas życia (TTL) tokenów Sprawdzania aplikacji wydawanych przez dostawcę. Możesz ustawić TTL na dowolną wartość od 30 minut do 7 dni. Podczas zmiany tej wartości pamiętaj o tych kompromisach:

    • Bezpieczeństwo: krótsze wartości TTL zapewniają większe bezpieczeństwo, ponieważ zmniejszają okno, w którym atakujący może wykorzystać wyciekły lub przechwycony token.
    • Wydajność: krótsze wartości TTL oznaczają, że aplikacja będzie częściej przeprowadzać atestację. Ponieważ proces atestacji aplikacji dodaje opóźnienie do żądań sieciowych za każdym razem, gdy jest wykonywany, krótki TTL może wpłynąć na wydajność aplikacji.
    • Limit i koszt: krótsze wartości TTL i częste ponowne atestacje szybciej wyczerpują limit, a w przypadku płatnych usług mogą kosztować więcej. Zobacz Limity.

    Domyślna wartość TTL jest odpowiednia dla większości aplikacji. Pamiętaj, że biblioteka Sprawdzania aplikacji odświeża tokeny mniej więcej w połowie czasu TTL.

2. Dodawanie biblioteki Sprawdzania aplikacji do aplikacji

  1. W katalogu głównym projektu Flutter uruchom to polecenie, aby zainstalować wtyczkę:

    flutter pub add firebase_app_check
    
  2. Po zakończeniu ponownie skompiluj aplikację Flutter:

    flutter run
    

3. Inicjowanie Sprawdzania aplikacji

Dodaj do aplikacji ten 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

Gdy biblioteka Sprawdzania aplikacji zostanie zainstalowana w 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 prawidłowe, dopóki nie włączysz egzekwowania w sekcji Sprawdzanie aplikacji w konsoli Firebase.

Monitorowanie danych i włączanie egzekwowania

Zanim włączysz egzekwowanie, upewnij się, że nie zakłóci to działania dotychczasowych użytkowników. Z drugiej strony, jeśli zauważysz podejrzane użycie zasobów aplikacji, możesz włączyć egzekwowanie wcześniej.

Aby ułatwić podjęcie decyzji, możesz sprawdzić dane Sprawdzania aplikacji dotyczące używanych usług:

Włączanie egzekwowania Sprawdzania aplikacji

Gdy zrozumiesz, jak Sprawdzanie aplikacji wpłynie na użytkowników, i będziesz gotowy(-a) do kontynuowania, możesz włączyć egzekwowanie Sprawdzania aplikacji:

Używanie Sprawdzania 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 środowisku ciągłej integracji (CI), możesz utworzyć kompilację debugowania aplikacji, która będzie używać dostawcy debugowania Sprawdzania aplikacji zamiast prawdziwego dostawcy atestacji.

Zobacz Używanie Sprawdzania aplikacji z dostawcą debugowania w aplikacjach Flutter.