הגנה על משאבי קצה עורפי בהתאמה אישית באמצעות App Check באפליקציות אינטרנט

אתם יכולים להשתמש ב-App Check כדי להגן על משאבי קצה עורפי בהתאמה אישית שלא שייכים ל-Google באפליקציה שלכם, כמו קצה עורפי באירוח עצמי. כדי לעשות זאת, תצטרכו לבצע את שתי הפעולות הבאות:

לפני שמתחילים

מוסיפים את App Check לאפליקציה באמצעות ספק reCAPTCHA Enterprise או ספק בהתאמה אישית.

שליחת טוקנים של App Check עם בקשות מהקצה העורפי

בצד הלקוח של האפליקציה, לפני כל בקשה, צריך לקבל טוקן תקף שלא פג תוקפו עם appCheck().getToken().App Check הספרייה App Check תרענן את האסימון אם יהיה צורך.

אחרי שיש לכם טוקן תקין, אתם צריכים לשלוח אותו עם הבקשה לשרת העורפי. אתם יכולים לבחור איך לעשות את זה, אבל אל תשלחו טוקנים של App Check כחלק מכתובות URL, כולל בפרמטרים של שאילתות, כי זה הופך אותם לפגיעים לדליפה וליירוט מקריים. בדוגמה הבאה הטוקן נשלח בכותרת HTTP מותאמת אישית, וזו הגישה המומלצת.

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.
};

הגנה מפני הפעלה חוזרת (בטא)

כששולחים בקשה לנקודת קצה שהפעלתם עבורה הגנה מפני הפעלה חוזרת, צריך לקבל טוקן באמצעות getLimitedUseToken() במקום getToken():

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

// ...

appCheckTokenResponse = await getLimitedUseToken(appCheck);