Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Web uygulamalarında reCAPTCHA v3 ile Uygulama Kontrolünü etkinleştirin

Bu sayfa, yerleşik reCAPTCHA v3 sağlayıcısını kullanarak bir web uygulamasında Uygulama Kontrolü'nü nasıl etkinleştireceğinizi gösterir. Uygulama Kontrolü'nü etkinleştirdiğinizde, projenizin Firebase kaynaklarına yalnızca uygulamanızın erişebilmesini sağlamaya yardımcı olursunuz. Bir bakın Özeti Bu özellikten.

reCAPTCHA v3'ün kullanıcılar tarafından görülmediğini unutmayın. reCAPTCHA v3 sağlayıcısı, kullanıcıların herhangi bir zamanda bir meydan okumayı çözmesini gerektirmez. Bkz reCAPTCHA'nın v3 belgelerine .

Kendi özel sağlayıcı ile App Kontrolü kullanmak isterseniz, bkz bir özel App Kontrol sağlayıcı uygulamak .

1. Firebase projenizi kurun

  1. JavaScript projeye Firebase ekle Şimdiye kadar yapmadıysanız.

  2. ReCAPTCHA v3 için sitenizi Kayıt ve reCAPTCHA'nın v3 sitesi anahtarı ve gizli anahtarı olsun.

  3. ReCAPTCHA sağlayıcı ile App Kontrolü kullanmak için uygulamalarınızı Kayıt Proje Ayarlar> Uygulama Kontrol Firebase konsolunun bölümünde. Sen bir önceki adımda var gizli anahtarı vermeniz gerekecektir.

    Bir Firebase ürünü için zorlamayı 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.

  4. Opsiyonel: Uygulama Kontrol sağlayıcı tarafından yayınlanan jetonudur için uygulama kaydıyla ayarlarında, özel bir zaman oturulabilir (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 ödünleşimlerin farkında olun:

    • Güvenlik: Daha kısa TTL'ler daha güçlü güvenlik sağlar çünkü sızdırılmış veya ele geçirilmiş bir belirtecin bir saldırgan tarafından kötüye kullanılabileceği pencereyi azaltır.
    • Performans: Daha kısa TTL'ler, uygulamanızın daha sık doğrulama gerçekleştireceği anlamına gelir. Uygulama doğrulama işlemi, her gerçekleştirildiğinde ağ isteklerine gecikme eklediğinden, kısa bir TTL uygulamanızın performansını etkileyebilir.
    • Kota: Daha kısa TTL'ler ve sık sık yeniden onaylama, kotanızı daha hızlı tüketir. Bkz Kotaları ve sınırlar .

    1 gün varsayılan TTL çoğu uygulamalar için makul.

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

Web uygulamanıza Firebase ekle Zaten değil varsa. Uygulama Kontrolü kitaplığını içe aktardığınızdan emin olun.

3. Uygulama Kontrolünü Başlatın

Herhangi bir Firebase hizmetine erişmeden önce aşağıdaki başlatma kodunu uygulamanıza ekleyin. Sen hiç, sen reCAPTCHA Konsolda oluşturulan sizin reCAPTCHA sitesi anahtarını geçmesi gerekecektir activate() .

Web sürümü 9

const { initializeApp } = require("firebase/app");
const { initializeAppCheck, ReCaptchaV3Provider } = require("firebase/app-check");

const app = initializeApp({
  // Your firebase configuration object
});

// Pass your reCAPTCHA v3 site key (public key) to activate(). Make sure this
// key is the counterpart to the secret key you set in the Firebase console.
const appCheck = initializeAppCheck(app, {
  provider: new ReCaptchaV3Provider('abcdefghijklmnopqrstuvwxy-1234567890abcd'),

  // Optional argument. If true, the SDK automatically refreshes App Check
  // tokens as needed.
  isTokenAutoRefreshEnabled: true
});

Web sürümü 8

firebase.initializeApp({
  // Your firebase configuration object
});

const appCheck = firebase.appCheck();
// Pass your reCAPTCHA v3 site key (public key) to activate(). Make sure this
// key is the counterpart to the secret key you set in the Firebase console.
appCheck.activate(
  'abcdefghijklmnopqrstuvwxy-1234567890abcd',

  // Optional argument. If true, the SDK automatically refreshes App Check
  // tokens as needed.
  true);

Uygulama Kontrolü kitaplığı uygulamanıza yüklendikten sonra dağıtın.

Güncellenen istemci uygulaması, Firebase'e yaptığı her istekle birlikte Uygulama Kontrolü belirteçleri göndermeye başlayacak, ancak Firebase ürünleri, Firebase konsolunun Uygulama Kontrolü bölümünde zorlamayı etkinleştirene kadar belirteçlerin geçerli olmasını gerektirmeyecek. Ayrıntılar için sonraki iki bölüme bakın.

4. İstek metriklerini izleyin

Güncellenen uygulamanız artık kullanıcıların elinde olduğuna göre, kullandığınız Firebase ürünleri için Uygulama Kontrolü'nün uygulanmasını etkinleştirebilirsiniz. Ancak bunu yapmadan önce, bunu yapmanın mevcut meşru kullanıcılarınızı kesintiye uğratmayacağından emin olmalısınız.

Gerçek Zamanlı Veritabanı ve Bulut Depolama

Gerçek Zamanlı Veritabanı ve Bulut Depolama için bu kararı vermek için kullanabileceğiniz önemli bir araç, Uygulama Kontrolü istek ölçümleri ekranıdır.

Bir ürün için Uygulama Denetimi isteği ölçümleri görüntülemek açmak için Proje Ayarları> Uygulama Kontrol Firebase konsolunun bölümü. Örneğin:

Uygulama Kontrolü metrikleri sayfasının ekran görüntüsü

Her ürün için istek metrikleri dört kategoriye ayrılmıştır:

  • Doğrulanmış isteklerin geçerli App jetonu Kontrol sahip olanlardır. Uygulama Kontrolü zorlamasını etkinleştirdikten sonra yalnızca bu kategorideki istekler başarılı olur.

  • Eskimiş istemci istekleri bir App Kontrol jetonu eksik olanlardır. Bu istekler, Uygulama Kontrolü uygulamaya dahil edilmeden önce Firebase SDK'nın daha eski bir sürümünden olabilir.

  • Bilinmeyen kökenli istekleri bir App jetonu Kontrol eksik olanlardır ve bunlar Firebase SDK gelen benzemiyorsun. Bunlar, çalınan API anahtarlarıyla yapılan isteklerden veya Firebase SDK'sı olmadan yapılan sahte isteklerden olabilir.

  • Geçersiz istek uygulamanızı veya taklit ortamlardan taklit girişiminde özgün olmayan müşteriden olabilir hangi geçersiz App belirteç kontrol sahip olanlar vardır.

Uygulamanız için bu kategorilerin dağılımı, yaptırımı etkinleştirmeye karar verdiğinizde bilgi vermelidir. İşte bazı yönergeler:

  • Son isteklerin neredeyse tamamı doğrulanmış istemcilerden geliyorsa, arka uç kaynaklarınızı korumaya başlamak için yaptırımı etkinleştirmeyi düşünün.

  • Son isteklerin önemli bir kısmı muhtemelen eski müşterilerden geliyorsa, kullanıcıları rahatsız etmemek için yaptırımı etkinleştirmeden önce daha fazla kullanıcının uygulamanızı güncellemesini beklemeyi düşünün. Yayınlanan bir uygulamada Uygulama Kontrolü'nün zorunlu kılınması, Uygulama Kontrolü SDK'sı ile entegre olmayan önceki uygulama sürümlerini bozacaktır.

  • Uygulamanız henüz başlatılmadıysa, kullanımda olan herhangi bir eski istemci olmadığından Uygulama Kontrolü zorlamasını hemen etkinleştirmelisiniz.

Bulut İşlevleri

Cloud Functions için, işlevlerinizin günlüklerini inceleyerek Uygulama Kontrolü ölçümlerini alabilirsiniz. Çağrılabilir bir işlevin her çağrısı, aşağıdaki örnekte olduğu gibi yapılandırılmış bir günlük girişi yayar:

{
  "severity": "INFO",    // INFO, WARNING, or ERROR
  "logging.googleapis.com/labels": {"firebase-log-type": "callable-request-verification"},
  "jsonPayload": {
    "message": "Callable header verifications passed.",
    "verifications": {
      // ...
      "app": "MISSING",  // VALID, INVALID, or MISSING
    }
  }
}

Sen Google Cloud Console bu metrikleri analiz edebilir bir yaratma karşı metrik günlükleri tabanlı aşağıdaki metrik filtreli:

resource.type="cloud_function"
resource.labels.function_name="YOUR_CLOUD_FUNCTION"
resource.labels.region="us-central1"
labels.firebase-log-type="callable-request-verification"

Metrik Etiket alanını kullanarak jsonPayload.verifications.appCheck .

5. Zorlamayı etkinleştirin

Zorlamayı etkinleştirmek için her bir ürün için aşağıdaki talimatları izleyin. Bir ürün için yaptırımı etkinleştirdiğinizde, o ürüne yönelik tüm doğrulanmamış istekler reddedilir.

Gerçek Zamanlı Veritabanı ve Bulut Depolama

Gerçek Zamanlı Veritabanı ve Bulut Depolama için zorlamayı etkinleştirmek için:

  1. Proje Ayarları> Uygulama Kontrol Firebase konsolunun bölümü.

  2. Zorlamayı etkinleştirmek istediğiniz ürünün metrik görünümünü genişletin.

  3. Tıklayın uygula ve seçiminizi onaylayın.

Zorunluluğu etkinleştirdikten sonra yürürlüğe girmesinin 10 dakika kadar sürebileceğini unutmayın.

Bulut İşlevleri

Bkz App Bulut Fonksiyonlar için uygulanmasını kontrol etkinleştirin .

Sonraki adımlar

Uygulamanızı Uygulama Kontrolü için kaydettirdikten sonra, uygulamanızı, geliştirme sırasında yerel olarak veya bir sürekli entegrasyon (CI) ortamından olduğu gibi, Uygulama Kontrolü'nün normalde geçerli olarak sınıflandırmadığı bir ortamda çalıştırmak istiyorsanız, oluşturabilirsiniz. gerçek bir doğrulama sağlayıcısı yerine Uygulama Kontrolü hata ayıklama sağlayıcısını kullanan uygulamanızın bir hata ayıklama yapısı.

Bkz Kullan App web uygulamalarında hata ayıklama sağlayıcınızla görüşün .