Bir API'yi doğrudan mobil veya web uygulamasından çağırdığınızda (ör. üretken yapay zeka modellerine erişime izin veren API'ler) API, yetkisiz istemciler tarafından kötüye kullanıma açık hâle gelir. Bu API'lerin kötüye kullanımını önlemek için Firebase App Check kullanarak gelen tüm API çağrılarının gerçek uygulamanızdan ve üzerinde değişiklik yapılmamış bir cihazdan geldiğini doğrulayabilirsiniz.
Firebase AI Logic, Firebase App Check ile entegrasyon yapmanıza ve mobil ile web uygulamalarınız tarafından çağrılan üretken yapay zeka modeli API'lerini korumanıza olanak tanıyan bir proxy ağ geçidi sağlar. App Check ile Firebase AI Logic SDK'ları kullanmak tüm yapılandırmalarımızı destekler:
Hem "Gemini API" sağlayıcılarını (Gemini Developer API) hem de Vertex AI Gemini API korur.
Hem Gemini hem de Imagen modelleri dahil olmak üzere desteklenen tüm modelleri korur.
App Check ayrıca tekrar oynatma korumasını da destekler. Bu, App Check jetonunun yalnızca bir kez kullanılabileceği anlamına gelir.
App Check'nın işleyiş şeklinin üst düzey özeti
App Check ile uygulamanızı çalıştıran cihazlar, aşağıdakilerden birini veya her ikisini de doğrulayan bir uygulama ya da cihaz onayı sağlayıcısı kullanır:
- İstekler, orijinal uygulamanızdan gelmelidir.
- İstekler, orijinal ve kurcalanmamış bir cihazdan kaynaklanıyor
Bu onay, uygulamanızın Firebase AI Logic SDK'sını kullanarak yaptığı her isteğe eklenir. App Check zorunluluğunu etkinleştirdiğinizde, geçerli bir onay belgesi olmayan istemcilerden gelen istekler ve yetkilendirmediğiniz bir uygulamadan veya platformdan gelen tüm istekler reddedilir.
App Check'yı ayarlarken App Check jetonlarını yalnızca bir kez kullanılabilir hale getiren tekrar oynatma koruması eklemeyi düşünebilirsiniz. Bu seçenek, temel korumanın ötesinde gelişmiş koruma sunar ve uygulamanız ile kullanım alanlarınız için uygun bir koruma düzeyi belirlemenize olanak tanır.
App Check hakkında ayrıntılı bilgiyi, kotaları ve sınırları da dahil olmak üzere dokümanlarında bulabilirsiniz.
App Check ayarlarını yapın
App Check belgelerinde, onay sağlayıcıların ayrıntılı açıklamalarının yanı sıra ayrıntılı uygulama talimatları yer alır.
Varsayılan bir onay sağlayıcı seçin ve aşağıdaki bağlantılardaki uygulama talimatlarını uygulayın:
- Apple platformları: DeviceCheck veya App Attest
- Android: Play Integrity
- Web: reCAPTCHA Enterprise
- Flutter:
Yukarıdaki tüm varsayılan sağlayıcıları destekler. Daha eski eklenti sürümlerini kullanıyorsanız Flutter ve App Check için aşağıdaki özel örnekleme hakkındaki nota bakın. - Unity: Yukarıdaki tüm varsayılan sağlayıcıları destekler.
Varsayılan onay sağlayıcıların hiçbiri ihtiyaçlarınızı karşılamıyorsa üçüncü taraf onay sağlayıcı veya kendi onay tekniklerinizi kullanan özel bir sağlayıcı uygulayabilirsiniz.
(Zorunlu) Uygulamanızı herkese açık bir kaynak kodu kontrol sistemine göndermeden, paylaşmadan veya herkese açık hale getirmeden önce App Check yaptırımını etkinleştirin.
(Önerilir) Yeniden oynatma koruması ekleyerek korumayı artırın. Bu, App Check jetonunun yalnızca bir kez kullanılabileceği anlamına gelir.
Tekrar oynatma koruması ekleyerek korumayı artırma
|
En yeni SDK sürümlerini kullanmanızı öneririz ancak
tekrar oynatma korumasını kullanmak için bu sürümlerden en az birini kullandığınızdan emin olun: Apple platformları v12.2.0+ | Android BoM v34.14.0+ (App Check v19.1.0+) | Web v12.14.0+ | Flutter v4.15.0+ (App Check v4.10.0+) | Unity v13.12.0+ |
Varsayılan olarak App Check,
Ancak tek kullanımlık jetonlar kullanan yeniden oynatma korumasını zorunlu kılarak korumayı bu temel korumanın ötesine taşıyabilirsiniz. Yeniden oynatma koruması zorunlu kılındığında şunlar olur:
App Check, oturum jetonları kullanan Firebase AI Logic isteklerini engeller. Bunun yerine, App Check yalnızca yeni oluşturulmuş sınırlı kullanım jetonu kullanan Firebase AI Logic isteklerine izin verir.
Sınırlı kullanımlı jeton doğrulandıktan sonra, yalnızca bir kez kullanılabilmesi için tüketilir. Bu sayede tekrar oynatma saldırıları önlenir.
App Check SDK, her istek için yeni bir sınırlı kullanım jetonu oluşturur. Bu işlemin, bazı gecikmeler ekleyerek ve bazen de (onay sağlayıcınıza bağlı olarak) maliyet oluşturarak isteklerinizi etkileyebileceğini unutmayın.
Yeniden oynatma korumasını ayarlama ve zorunlu kılma
|
Bu sayfada sağlayıcıya özel içerikleri ve kodu görüntülemek için Gemini API sağlayıcınızı tıklayın. |
Yeniden oynatma korumasını ayarlama ve zorunlu kılma adımları aşağıda açıklanmıştır:
Henüz yapmadıysanız uygulamanız için App Check uygulamasını etkinleştirin.App Check
Sınırlı kullanım jetonlarının kullanımını etkinleştirin.
Uygulamanızda örnek oluşturma sırasında
useLimitedUseAppCheckTokensparametresinitrueolarak ayarlayın:Swift
// ... // During instantiation, enable usage of limited-use tokens let ai = FirebaseAI.firebaseAI( backend: .googleAI(), useLimitedUseAppCheckTokens: true ) // ...Kotlin
// ... // During instantiation, enable usage of limited-use tokens val ai = Firebase.ai( backend = GenerativeBackend.googleAI(), useLimitedUseAppCheckTokens = true ) // ...Java
// ... // During instantiation, enable usage of limited-use tokens FirebaseAI ai = FirebaseAI.getInstance( /* backend: */ GenerativeBackend.googleAI(), /* useLimitedUseAppCheckTokens: */ true ); // ...Web
// ... // During instantiation, enable usage of limited-use tokens const ai = getAI(firebaseApp, { backend: new GoogleAIBackend(), useLimitedUseAppCheckTokens: true }); // ...Dart
// ... // During instantiation, enable usage of limited-use tokens final ai = await FirebaseAI.googleAI( useLimitedUseAppCheckTokens: true, ); // ...Unity
// ... // During instantiation, enable usage of limited-use tokens var ai = FirebaseAI.GetInstance( useLimitedUseAppCheckTokens: true ); // ...Yeniden oynatma korumasını zorunlu kılın.
Uygulamanızın kod tabanında, sınırlı kullanım jetonlarının kullanımını etkinleştirdiğinizden emin olun (önceki adıma bakın).
Firebase konsolunda Güvenlik > Uygulama Kontrolü'ne gidin.
Firebase AI Logic için metrik görünümünü genişletin.
Temel koruma'nın Etkin olduğundan emin olun ve Devam'ı tıklayın.
Yeniden oynatma koruması için Uygulanmıyor (yalnızca izleme) veya Uygulanıyor'u seçin.
Yeniden oynatma korumasını ne zaman zorunlu kılacağınıza karar verirken aşağıdakileri göz önünde bulundurun:
Kullanıcılarınızın önemli bir kısmı, sınırlı kullanım token'ları etkinleştirilmeden uygulamanızın eski sürümlerini kullanıyorsa isteklerinizi izlemeniz önerilir. Yeniden oynatma korumasını hemen zorunlu kılarsanız bu kullanıcılardan gelen istekler engellenir.
Özellikle Doğrulanmadı: Yeniden kullanılan jeton metriğini izleyebilirsiniz. Bu metrik, önceki bir istekte zaten kullanılmış bir jetona sahip isteklerin sayısıdır. Bu metriği Firebase konsolunda izleyin (Güvenlik > App Check > API'ler sekmesine gidin).
Son isteklerin önemli bir kısmı bu kategorideyse kullanıcıların kesintiye uğramasını önlemek için yeniden oynatma korumasını zorunlu kılmak üzere, daha fazla kullanıcı uygulamanızın sınırlı kullanımlı jetonları kullanan bir sürümüne güncelleme yapana kadar bekleyebilirsiniz.
Firebase AI Logic ile App Check arasındaki entegrasyonu anlama
Firebase AI Logic SDK'larını kullanmak için Firebase projenizde Firebase AI Logic API'si (firebasevertexai.googleapis.com) etkinleştirilmelidir. Bunun nedeni, Firebase AI Logic SDK'ları tarafından yapılan isteklerin önce Firebase AI Logic sunucusuna gönderilmesidir. Bu sunucu, isteğin seçtiğiniz "Gemini API" sağlayıcının arka ucuna ve Gemini ile Imagen modellerine erişmek için kullanılan API'lere geçmesine izin verilmeden önce Firebase App Check doğrulamasının yapıldığı bir proxy ağ geçidi görevi görür.