Web uygulamalarında Uygulama Kontrolü ile Firebase dışı kaynakları koruyun

Uygulamanızın kendi bünyesinde barındırılan arka uçlar gibi Firebase dışı kaynaklarını koruyabilirsiniz. kullanıma sunduk. Bunun için aşağıdakilerin ikisini de yapmanız gerekir:

  • Uygulama istemcinizi her istekle birlikte bir Uygulama Kontrolü jetonu gönderecek şekilde değiştirme arka ucunuza gönderin.
  • Arka ucunuzu her istekte geçerli bir uygulama kontrolü jetonu gerektirecek şekilde değiştirin. Özel arka uçtan Uygulama Kontrolü jetonlarını doğrulama bölümünde açıklandığı gibi.

Başlamadan önce

Aşağıdakilerden birini kullanarak reCAPTCHA Enterprise sağlayıcısı veya özel bir sağlayıcı kullanabilirsiniz.

Arka uç istekleriyle birlikte Uygulama Kontrolü jetonları gönderme

Uygulama istemcinizde, her istekten önce geçerli ve süresi dolmamış bir Uygulama Kontrolü alın appCheck().getToken() ile jeton. Uygulama Kontrolü kitaplığı, belirtmelisiniz.

Geçerli bir jeton edindikten sonra bu jetonu istekle birlikte arka ucunuza gönderin. İlgili içeriği oluşturmak için kullanılan bunu nasıl başaracağınıza ilişkin ayrıntılar size bağlıdır ancak bilgilere Sorgu parametreleri dahil olmak üzere, URL'lerin bir parçası olarak Uygulama Kontrolü jetonları bu cihazlar kazayla sızıntılara ve müdahaleye karşı savunmasız hale gelir. Aşağıdakiler kodu özel bir HTTP üst bilgisinde gönderir. Bu örneğin, bahsedeceğiz.

Web

import { initializeAppCheck, getToken } from 'firebase/app-check';

const appCheck = initializeAppCheck(
    app,
    { provider: provider } // ReCaptchaV3Provider or CustomProvider
);

const callApiWithAppCheckExample = async () => {
  let appCheckTokenResponse;
  try {
      appCheckTokenResponse = await getToken(appCheck, /* forceRefresh= */ false);
  } catch (err) {
      // Handle any errors if the token was not retrieved.
      return;
  }

  // Include the App Check token with requests to your server.
  const apiResponse = await fetch('https://yourbackend.example.com/yourApiEndpoint', {
      headers: {
          'X-Firebase-AppCheck': appCheckTokenResponse.token,
      }
  });

  // Handle response from your backend.
};

Web

const callApiWithAppCheckExample = async () => {
  let appCheckTokenResponse;
  try {
      appCheckTokenResponse = await firebase.appCheck().getToken(/* forceRefresh= */ false);
  } catch (err) {
      // Handle any errors if the token was not retrieved.
      return;
  }

  // Include the App Check token with requests to your server.
  const apiResponse = await fetch('https://yourbackend.example.com/yourApiEndpoint', {
      headers: {
          'X-Firebase-AppCheck': appCheckTokenResponse.token,
      }
  });

  // Handle response from your backend.
};

Tekrar oynatma koruması (beta)

Etkinleştirdiğiniz bir uç noktaya istekte bulunurken oynatma koruması, getToken() yerine getLimitedUseToken() kullanarak bir jeton alın:

import { getLimitedUseToken } from "firebase/app-check";

// ...

appCheckTokenResponse = await getLimitedUseToken(appCheck);