Platform seçin: Android iOS JavaScript

API anahtarınızın güvenliğini sağlamak için Uygulama Kontrolü'nü kullanma

Firebase Uygulama Kontrolü, meşru uygulamalar dışındaki kaynaklardan gelen trafiği engelleyerek uygulamanızdan Google Haritalar Platformu'na yapılan çağrıları korur. Bunu yapmak için reCAPTCHA Enterprise gibi bir onay sağlayıcıdan alınan jetonu kontrol eder. Uygulamalarınızı Uygulama Kontrolü ile entegre etmek, kötü amaçlı isteklere karşı korunmanıza yardımcı olur. Böylece yetkisiz API çağrıları için sizden ücret alınmaz.

Uygulama Kontrolü benim için uygun mu?

Çoğu durumda Uygulama Kontrolü önerilir. Ancak aşağıdaki durumlarda Uygulama Kontrolü gerekli değildir veya desteklenmez:

  • Özel veya deneysel uygulamalar Uygulamanız herkese açık değilse Uygulama Kontrolü'ne gerek yoktur.
  • Uygulamanız yalnızca sunucudan sunucuya kullanılıyorsa Uygulama Kontrolü'ne gerek yoktur. Ancak GMP ile iletişim kuran sunucu herkese açık istemciler (ör. mobil uygulamalar) tarafından kullanılıyorsa GMP yerine bu sunucuyu korumak için Uygulama Kontrolü'nü kullanmayı düşünebilirsiniz.

Uygulama adımlarına genel bakış

Uygulamanızı Uygulama Kontrolü ile entegre etmek için genel olarak şu adımları uygulayacaksınız:

  1. Uygulamanıza Firebase'i ekleyin.
  2. App Check kitaplığını ekleyin ve başlatın.
  3. Jeton sağlayıcıyı uygulamanıza ekleyin.
  4. Maps JS ve App Check API'lerini başlatın.
  5. Hata ayıklamayı etkinleştirin.
  6. Uygulama isteklerinizi izleyin ve yaptırım konusunda karar verin.

Uygulama Kontrolü ile entegrasyonu tamamladıktan sonra Firebase konsolunda arka uç trafiği metriklerini görebilirsiniz. Bu metrikler, isteklerin geçerli bir Uygulama Kontrolü jetonuyla birlikte gönderilip gönderilmediğine göre dökümünü sağlar. Daha fazla bilgi için Firebase Uygulama Kontrolü belgelerine bakın.

İsteklerin çoğunun meşru kaynaklardan geldiğinden ve kullanıcıların Uygulama Kontrolü uygulamanızı içeren en yeni sürüme güncellediğinden emin olduğunuzda yaptırımı etkinleştirebilirsiniz. Yaptırım etkinleştirildikten sonra Uygulama Kontrolü, geçerli bir Uygulama Kontrolü jetonu içermeyen tüm trafiği reddeder.

Uygulama Kontrolü entegrasyonu planlarken dikkat edilmesi gerekenler

Entegrasyonunuzu planlarken göz önünde bulundurmanız gereken bazı noktalar:

  • Önerdiğimiz onay sağlayıcılardan biri olan reCAPTCHA Enterprise, ayda 10.000'den fazla değerlendirme için ücret alır.

    Önerdiğimiz diğer onay sağlayıcı reCAPTCHA s3'ün bir kotası vardır. Bu kotanın aşılması durumunda trafik değerlendirilmez.

    Gelişmiş bir kullanım alanı olsa da özel bir onay sağlayıcı kullanmayı tercih edebilirsiniz. Daha fazla bilgi için Uygulama Kontrolü belgelerini inceleyin.

  • Uygulamanızın kullanıcıları, başlatma sırasında gecikme yaşayabilir. Ancak daha sonra, periyodik olarak yeniden onaylama işlemleri arka planda gerçekleşir ve kullanıcılar artık herhangi bir gecikme yaşamaz. Başlangıçtaki tam gecikme süresi, seçtiğiniz onay sağlayıcıya bağlıdır.

    Uygulama Kontrolü jetonunun geçerli olduğu süre (geçerlilik süresi veya TTL), yeniden onaylama sıklığını belirler. Bu süre, Firebase konsolunda yapılandırılabilir. Yeniden onaylama, TTL'nin yaklaşık yarısı geçtiğinde gerçekleşir. Daha fazla bilgi için onaylama sağlayıcınızla ilgili Firebase belgelerine bakın.

Uygulamanızı App Check ile entegre etme

Ön koşullar ve şartlar

1. adım: Uygulamanıza Firebase'i ekleyin

Firebase'i uygulamanıza eklemek için Firebase geliştirici belgelerindeki talimatları uygulayın.

2. adım: App Check kitaplığını ekleyin ve App Check'i başlatın

Firebase, her varsayılan onay sağlayıcı için talimatlar sağlar. Bu talimatlarda, Firebase projesinin nasıl oluşturulacağı ve Uygulama Kontrolü kitaplığının uygulamanıza nasıl ekleneceği açıklanmaktadır. Uygulama Kontrolü'nü ilk kullanıma hazırlamak için sağlanan kod örneklerini uygulayın.

3. adım: Haritalar JS API kitaplıklarını yükleyin

  1. Aşağıdaki snippet'te gösterildiği gibi temel ve Haritalar kitaplıklarını yükleyin. Daha fazla bilgi ve talimat için Maps JavaScript API belgelerine bakın.

    async function init() {
      const {Settings} = await google.maps.importLibrary('core');
      const {Map} = await google.maps.importLibrary('maps');
    }  

4. adım: Haritalar ve Uygulama Kontrolü API'lerini ilk kullanıma hazırlayın

  1. Firebase konsolu tarafından sağlanan yapılandırmayı kullanarak App Check'i başlatın.
  2. Maps JS API'ye gönderilen isteklerin Uygulama Kontrolü jetonlarıyla birlikte gönderildiğinden emin olun:
      import {initializeApp} from 'firebase/app';
      import {
        getToken,
        initializeAppCheck,
        ReCaptchaEnterpriseProvider,
      } from 'firebase/app-check';
        
      async function init() {
        const {Settings} = await google.maps.importLibrary('core');
        const {Map} = await google.maps.importLibrary('maps');
      
        const app = initializeApp({
          // Your firebase configuration object
        });
      
        // Pass your reCAPTCHA Enterprise site key to initializeAppCheck().
        const appCheck = initializeAppCheck(app, {
          provider: new ReCaptchaEnterpriseProvider(
            'abcdefghijklmnopqrstuvwxy-1234567890abcd',
          ),
      
          // Optional argument. If true, the SDK automatically refreshes App Check
          // tokens as needed.
          isTokenAutoRefreshEnabled: true,
        });
      
        Settings.getInstance().fetchAppCheckToken = () =>
            getToken(appCheck, /* forceRefresh = */ false);
      
        // Load a map
        map = new Map(document.getElementById("map"), {
          center: { lat: 37.4161493, lng: -122.0812166 },
          zoom: 8,
        });
      }  
      

5. adım: Hata ayıklamayı etkinleştirin (isteğe bağlı)

Uygulamanızı yerel olarak geliştirmek ve test etmek ya da sürekli entegrasyon (CI) ortamında çalıştırmak istiyorsanız geçerli Uygulama Kontrolü jetonları almak için hata ayıklama gizlisi kullanan bir hata ayıklama derlemesi oluşturabilirsiniz. Bu sayede, hata ayıklama derlemenizde gerçek onay sağlayıcıları kullanmaktan kaçınabilirsiniz.

Uygulamanızı yerel olarak test etmek için:

  • Geliştirme amacıyla hata ayıklama sağlayıcısını etkinleştirin.
  • SDK'nın hata ayıklama günlüklerinden otomatik olarak oluşturulan rastgele bir UUID4 (App Check belgelerinde _hata ayıklama jetonu_ olarak adlandırılır) alırsınız. Bu jetonu Firebase konsoluna ekleyin.
  • Daha fazla bilgi ve talimat için Uygulama Kontrolü belgelerini inceleyin.

Uygulamanızı CI ortamında çalıştırmak için:

  • Firebase konsolundan rastgele bir UUID4 oluşturun.
  • UUID4'ü hata ayıklama jetonu olarak ekleyin ve ardından CI testlerinin her test çalıştırmasında erişeceği gizli bir depoya kopyalayın.
  • Daha fazla bilgi ve talimat için Uygulama Kontrolü dokümanlarına bakın.

6. adım: Uygulama isteklerinizi izleyin ve yaptırım konusunda karar verin

Yaptırım uygulamaya başlamadan önce, uygulamanızın meşru kullanıcılarının hizmetten yararlanmasını engellemeyeceğinizden emin olmanız gerekir. Bunu yapmak için uygulama trafiğinizin ne kadarının doğrulanmış, eski veya yasa dışı olduğunu görmek üzere Uygulama Kontrolü metrikleri ekranını ziyaret edin. Trafiğinizin çoğunun doğrulandığını gördüğünüzde zorunlu kılmayı etkinleştirebilirsiniz.

Daha fazla bilgi ve talimat için Firebase Uygulama Kontrolü dokümanlarına bakın.