Pierwsze kroki z funkcją Sprawdzanie aplikacji w aplikacjach Flutter

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

  1. Zainstaluj i zainicjuj FlutterFire, jeśli jeszcze tego nie zrobiono.

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

  3. Na karcie Aplikacje zarejestruj aplikacje, aby używać App Check z dostawcami Play Integrity, DeviceCheck i reCAPTCHA.

    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.

  4. Opcjonalnie: w ustawieniach rejestracji aplikacji ustaw niestandardowy czas życia danych (TTL) dla tokenów App Check wydawanych przez dostawcę. Możesz ustawić TTL 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 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 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. Z drugiej strony, jeśli zauważysz podejrzane wykorzystanie zasobów aplikacji, możesz wcześniej włączyć egzekwowanie.

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

Włączanie wymuszania Sprawdzania aplikacji

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

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 środowisku ciągłej integracji (CI), możesz utworzyć kompilację debugowania aplikacji, która zamiast prawdziwego dostawcy atestów korzysta z dostawcy debugowania Sprawdzania aplikacji.

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