תחילת השימוש ב-App Check באפליקציות Flutter

בדף הזה מוסבר איך להפעיל את App Check באפליקציית Flutter באמצעות ספקי ברירת המחדל: Play Integrity ב-Android,‏ Device Check בפלטפורמות של Apple ו-reCAPTCHA v3 באינטרנט. כשמפעילים את App Check, אפשר לוודא שרק לאפליקציה תהיה גישה למשאבי Firebase של הפרויקט. סקירה כללית של התכונה

1. הגדרת פרויקט Firebase

  1. מתקינים ומפעילים את FlutterFire, אם עדיין לא עשיתם זאת.

  2. כדי לאפשר לאפליקציות שלכם להשתמש ב-App Check עם ספקי Play Integrity, ‏ Device Check ו-reCAPTCHA, צריך להירשם לקטע Project Settings (הגדרות הפרויקט) > App Check (בדיקת אפליקציות) במסוף Firebase.

    בדרך כלל צריך לרשום את כל האפליקציות בפרויקט, כי אחרי שמפעילים אכיפה במוצר של Firebase, רק אפליקציות רשומות יכולות לגשת למשאבי הקצה העורפי של המוצר.

  3. אופציונלי: בהגדרות של רישום האפליקציה, מגדירים אורך חיים (TTL) מותאם אישית לאסימונים של בדיקת האפליקציה שהונפקו על ידי הספק. אפשר להגדיר את TTL לכל ערך בין 30 דקות ל-7 ימים. כשמשנים את הערך הזה, חשוב לזכור את הפשרות הבאות:

    • אבטחה: זמן חיים קצר יותר של אסימון מספק אבטחה חזקה יותר, כי הוא מצמצם את החלון שבו תוקף יכול לנצל לרעה אסימון שדלף או נתפס.
    • ביצועים: ככל שזמן החיים של התגים קצר יותר, כך האפליקציה תבצע אימות בתדירות גבוהה יותר. תהליך האימות של האפליקציה מוסיף זמן אחזור לבקשות הרשת בכל פעם שהוא מתבצע, ולכן TTL קצר יכול להשפיע על הביצועים של האפליקציה.
    • מכסה ועלות: TTL קצר יותר ואימות חוזר תכופים מורידים את המכסה מהר יותר, ובשירותים בתשלום יכול להיות שהעלות תהיה גבוהה יותר. מידע נוסף זמין במאמר מכסות ומגבלות.

    TTL ברירת המחדל מתאים לרוב האפליקציות. חשוב לזכור שספריית App Check מרעננת את האסימונים בכמחצית מזמן ה-TTL.

2. הוספת הספרייה של App Check לאפליקציה

  1. כדי להתקין את הפלאגין, מריצים את הפקודה הבאה מהשורש של פרויקט Flutter:

    flutter pub add firebase_app_check
    
  2. בסיום, יוצרים מחדש את אפליקציית Flutter:

    flutter run
    

3. איך מפעילים את App Check

מוסיפים את קוד האתחול הבא לאפליקציה כדי שהוא ירוץ לפני שמשתמשים בשירותי Firebase, כמו Storage, אבל אחרי שמפעילים את Firebase.initializeApp().

import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';

// Import the firebase_app_check plugin
import 'package:firebase_app_check/firebase_app_check.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  await FirebaseAppCheck.instance.activate(
    // You can also use a `ReCaptchaEnterpriseProvider` provider instance as an
    // argument for `webProvider`
    webProvider: ReCaptchaV3Provider('recaptcha-v3-site-key'),
    // Default provider for Android is the Play Integrity provider. You can use the "AndroidProvider" enum to choose
    // your preferred provider. Choose from:
    // 1. Debug provider
    // 2. Safety Net provider
    // 3. Play Integrity provider
    androidProvider: AndroidProvider.debug,
    // Default provider for iOS/macOS is the Device Check provider. You can use the "AppleProvider" enum to choose
        // your preferred provider. Choose from:
        // 1. Debug provider
        // 2. Device Check provider
        // 3. App Attest provider
        // 4. App Attest provider with fallback to Device Check provider (App Attest provider is only available on iOS 14.0+, macOS 14.0+)
    appleProvider: AppleProvider.appAttest,
  );
  runApp(App());
}

השלבים הבאים

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

אפליקציית הלקוח המעודכנת תתחיל לשלוח אסימונים של App Check יחד עם כל בקשה שהיא שולחת ל-Firebase, אבל מוצרי Firebase לא ידרשו שהאסימונים יהיו תקפים עד שתפעילו את האכיפה בקטע App Check במסוף Firebase.

מעקב אחרי המדדים והפעלת האכיפה

עם זאת, לפני שמפעילים את האכיפה, חשוב לוודא שהפעולה הזו לא תפריע למשתמשים החוקיים הקיימים. לעומת זאת, אם אתם רואים שימוש חשוד במשאבי האפליקציה, מומלץ להפעיל את האכיפה מוקדם יותר.

כדי לעזור לכם לקבל את ההחלטה הזו, תוכלו לעיין במדדים של App Check בשירותים שבהם אתם משתמשים:

הפעלת אכיפה של בדיקת האפליקציות

אחרי שתבדקו איך בדיקת האפליקציה תשפיע על המשתמשים ותהיה לכם אפשרות להמשיך, תוכלו להפעיל את האכיפה של בדיקת האפליקציה:

שימוש ב-App Check בסביבות ניפוי באגים

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

שימוש ב-App Check עם ספק ניפוי הבאגים באפליקציות Flutter