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

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

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

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

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

בלקוח האפליקציה, לפני כל בקשה, מקבלים אסימון App Check תקף ועדיין בתוקף באמצעות appCheck().getToken(). הספרייה 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);