Bu sayfada, varsayılan sağlayıcıları kullanarak Flutter uygulamasında Uygulama Kontrolü'nü nasıl etkinleştireceğiniz gösterilmektedir: Android'de Play Integrity, Apple platformlarında DeviceCheck ve web'de reCAPTCHA s3. Uygulama Kontrolü'nü etkinleştirdiğinizde, projenizin Firebase kaynaklarına yalnızca uygulamanızın erişebilmesini sağlarsınız. Bu özelliğe genel bakış
1. Firebase projenizi ayarlama
Henüz yapmadıysanız FlutterFire'ı yükleyip başlatın.
Uygulamalarınızı, Firebase konsolunun Proje Ayarları > Uygulama Kontrolü bölümünde Play Integrity, Device Check ve reCAPTCHA sağlayıcılarıyla birlikte Uygulama Kontrolü'nü kullanacak şekilde kaydedin.
Bir Firebase ürünü için yaptırımı etkinleştirdiğinizde yalnızca kayıtlı uygulamalar ürünün arka uç kaynaklarına erişebileceğinden genellikle projenizin tüm uygulamalarını kaydetmeniz gerekir.
İ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 dengeleri göz önünde bulundurun:
- Güvenlik: Daha kısa TTL'ler, sızdırılan veya müdahale edilen jetonun bir saldırgan tarafından kötüye kullanılabileceği süreyi kısalttığı için daha güçlü güvenlik sağlar.
- Performans: Daha kısa TTL'ler, uygulamanızın doğrulamayı daha sık gerçekleştireceği anlamına gelir. Uygulama doğrulama işlemi her gerçekleştirildiğinde ağ isteklerine gecikme süresi eklediğinden kısa bir TTL, uygulamanızın performansını etkileyebilir.
- Kota ve maliyet: Daha kısa TTL'ler ve sık sık yapılan yeniden doğrulama, kotanızı daha hızlı tüketir ve ücretli hizmetler için 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. App Check kitaplığının jetonları, TTL süresinin yaklaşık yarısında yenilediğini unutmayın.
2. Uygulamanızın kitaplığına App Check kitaplığını ekleme
Eklentiyi yüklemek için Flutter projenizin kökünden aşağıdaki komutu çalıştırın:
flutter pub add firebase_app_check
İşlem tamamlandığında Flutter uygulamanızı yeniden oluşturun:
flutter run
3. Uygulama Kontrolü'nü başlatma
Storage gibi Firebase hizmetlerini kullanmadan önce ancak Firebase.initializeApp()
çağrıldıktan sonra çalışacak şekilde uygulamanıza aşağıdaki ilk kullanıma hazırlama kodunu ekleyin;
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
Uygulamanızın App Check kitaplığı yüklendikten sonra güncellenmiş uygulamayı kullanıcılarınıza dağıtmaya başlayın.
Güncellenen istemci uygulaması, Firebase'e gönderdiği her istekle birlikte Uygulama Kontrolü jetonları göndermeye başlar. Ancak Firebase konsolunun Uygulama Kontrolü bölümünde yaptırımı etkinleştirene kadar Firebase ürünleri, jetonların geçerli olmasını gerektirmez.
Metrikleri izleme ve yaptırımı etkinleştirme
Ancak yaptırımı etkinleştirmeden önce, bu işlemin mevcut meşru kullanıcılarınızın çalışmasını engellemeyeceğinden emin olmanız gerekir. Diğer 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 App Check metriklerine bakabilirsiniz:
- Realtime Database, Cloud Firestore, Cloud Storage ve Authentication için Uygulama Kontrolü istek metriklerini izleyin.
- Cloud Functions için Uygulama Kontrolü istek metriklerini izleyin.
Uygulama Kontrolü yaptırımını etkinleştirme
App Check'in kullanıcılarınızı nasıl etkileyeceğini anladıktan ve devam etmeye hazır olduğunuzda App Check yaptırımını etkinleştirebilirsiniz:
- Realtime Database, Cloud Firestore, Cloud Storage ve Authentication için Uygulama Denetimi yaptırımını etkinleştirin.
- Cloud Functions için Uygulama Kontrolü yaptırımını etkinleştirin.
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ör) veya sürekli entegrasyon (CI) ortamında çalıştırmak istiyorsanız gerçek bir doğrulama sağlayıcısı yerine Uygulama Kontrolü hata ayıklama sağlayıcısını kullanan uygulamanızın hata ayıklama derlemesini oluşturabilirsiniz.
Flutter uygulamalarında hata ayıklama sağlayıcıyla App Check'i kullanma başlıklı makaleyi inceleyin.