Flutter uygulamalarında Uygulama Kontrolü'nü kullanmaya başlama

Bu sayfada, varsayılan sağlayıcıları (Android'de Play Integrity, Apple platformlarında Device Check ve web'de reCAPTCHA v3) kullanarak Flutter uygulamasında Uygulama Kontrolü'nün nasıl etkinleştirileceği gösterilmektedir. Uygulama Kontrolü'nü etkinleştirdiğinizde, yalnızca uygulamanızın projenizin Firebase kaynaklarına erişebilmesini sağlarsınız. Bu özelliğe genel bakış için makaleyi inceleyin.

1. Firebase projenizi oluşturma

  1. Henüz yapmadıysanız FlutterFire'ı yükleyip başlatın.

  2. Firebase konsolunun Proje Ayarları > Uygulama Kontrolü bölümünde uygulamalarınızı Play Integrity, Device Check ve reCAPTCHA sağlayıcılarıyla Uygulama Kontrolü'nü kullanacak şekilde kaydedin.

    Genellikle projenizin tüm uygulamalarını kaydetmeniz gerekir. Bunun nedeni, bir Firebase ürünü için zorunlu kılmayı etkinleştirdiğinizde yalnızca kayıtlı uygulamaların ürünün arka uç kaynaklarına erişebilmesidir.

  3. İsteğe bağlı: Uygulama kaydı ayarlarında, sağlayıcı tarafından verilen App Check jetonları için özel bir geçerlilik süresi (TTL) ayarlayın. TTL'yi 30 dakika ile 7 gün arasında herhangi bir değere ayarlayabilirsiniz. Bu değeri değiştirirken aşağıdaki dengelemeleri göz önünde bulundurun:

    • Güvenlik: Sızdırılmış veya müdahale edilmiş bir jetonun saldırgan tarafından kötüye kullanılabileceği süreyi kısalttığı için daha kısa TTL'ler daha güçlü güvenlik sağlar.
    • Performans: Daha kısa TTL'ler, uygulamanızın doğrulama işlemini daha sık gerçekleştireceği anlamına gelir. Uygulama onayı işlemi her gerçekleştirildiğinde ağ isteklerine gecikme eklediğinden kısa bir TTL, uygulamanızın performansını etkileyebilir.
    • Kota ve maliyet: Daha kısa TTL'ler ve sık yeniden onaylama, kotanızı daha hızlı tüketir ve ücretli hizmetlerde daha fazla maliyete neden olabilir. Kotalar ve sınırlar bölümüne bakın.

    Varsayılan TTL, çoğu uygulama için uygundur. Uygulama Kontrolü kitaplığının, yaklaşık olarak TTL süresinin yarısında jetonları yenilediğini unutmayın.

2. Uygulama Kontrolü kitaplığını uygulamanıza ekleme

  1. Eklentiyi yüklemek için Flutter projenizin kökünden aşağıdaki komutu çalıştırın:

    flutter pub add firebase_app_check
    
  2. İşlem tamamlandıktan sonra Flutter uygulamanızı yeniden oluşturun:

    flutter run
    

3. Uygulama Kontrolü'nü başlatma

Aşağıdaki ilk kullanıma hazırlama kodunu uygulamanıza ekleyin. Bu kod, Storage gibi Firebase hizmetlerini kullanmadan önce ancak Firebase.initializeApp() çağrıldıktan sonra çalışır.

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());
}

Sonraki adımlar

Uygulama Denetimi kitaplığı uygulamanıza yüklendikten sonra güncellenen uygulamayı kullanıcılarınıza dağıtmaya başlayın.

Güncellenen istemci uygulaması, Firebase'e yaptığı her istekle birlikte Uygulama Kontrolü jetonları göndermeye başlar. Ancak Firebase ürünleri, Firebase konsolunun Uygulama Kontrolü bölümünde zorunlu kılmayı etkinleştirmediğiniz sürece jetonların geçerli olmasını gerektirmez.

Metrikleri izleme ve yaptırım uygulama

Ancak zorunlu kılmayı etkinleştirmeden önce, bu işlemin mevcut meşru kullanıcılarınızın hizmetten yararlanmasını engellemeyeceğinden emin olmanız gerekir. Öte yandan, uygulama kaynaklarınızın şüpheli bir şekilde kullanıldığını görüyorsanız yaptırımı daha erken etkinleştirmek isteyebilirsiniz.

Bu kararı vermenize yardımcı olması için kullandığınız hizmetlerin Uygulama Kontrolü metriklerine bakabilirsiniz:

Uygulama Kontrolü'nü zorunlu kılma

Uygulama Kontrolü'nün kullanıcılarınızı nasıl etkileyeceğini anladığınızda ve devam etmeye hazır olduğunuzda Uygulama Kontrolü'nü zorunlu kılabilirsiniz:

Hata ayıklama ortamlarında App Check'i kullanma

Uygulamanızı Uygulama Kontrolü'ne kaydettikten sonra, uygulamanızı Uygulama Kontrolü'nün normalde geçerli olarak sınıflandırmayacağı bir ortamda (ör. geliştirme sırasında bir emülatörde veya sürekli entegrasyon (CI) ortamında) çalıştırmak istiyorsanız uygulamanızın hata ayıklama derlemesini oluşturabilirsiniz. Bu derlemede gerçek bir onay sağlayıcı yerine Uygulama Kontrolü hata ayıklama sağlayıcısı kullanılır.

Flutter uygulamalarında hata ayıklama sağlayıcısı ile App Check'i kullanma başlıklı makaleyi inceleyin.