תחילת העבודה עם App Check ו-reCAPTCHA Enterprise באפליקציות Flutter

בחירת פלטפורמה: iOS+‎ Android אינטרנט Flutter


בדף הזה מוסבר איך להגדיר את App Check באפליקציית Flutter באמצעות הספק reCAPTCHA Enterprise. ‫App Check עוזר לוודא שרק האפליקציה שלכם יכולה לגשת למשאבי הקצה העורפי של הפרויקט. מידע נוסף זמין בסקירה הכללית של App Check.

כדי להשתמש ב-App Check צריך להשתמש במפתחות reCAPTCHA מבוססי-ניקוד, ולכן המשתמשים לא רואים אותו. המשמעות היא שספק reCAPTCHA Enterprise לא ידרוש מהמשתמשים לפתור אתגר אף פעם.

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

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

  1. אם עדיין לא עשיתם זאת, התקינו והפעילו את Firebase בפרויקט Flutter.

  2. במסוף Google Cloud, נכנסים לדף Fraud Defense ומבצעים את הפעולות הבאות לספק reCAPTCHA Enterprise:

    1. מוודאים שאתם נמצאים בפרויקט הנכון (בעזרת הכלי לבחירת פרויקטים שבחלק העליון של המסך).

    2. אם מופיעה בקשה, מפעילים את ה-API של reCAPTCHA Enterprise.

    3. יוצרים מפתח על סמך פלטפורמת היעד:

      iOS+‎

      יוצרים מפתח מסוג iOS ומציינים את מזהה החבילה של האפליקציה (לדוגמה, com.example.my_app).

      • חשוב לוודא שהזנתם את אותו מזהה חבילה שסיפקתם כשיצרתם את אפליקציית Firebase ל-Apple בפרויקט Firebase. הערך של מזהה החבילה תלוי אותיות רישיות.

      • ב-App Check, כל מזהה חבילה יכול להתאים רק למפתח reCAPTCHA אחד.

      Android

      יוצרים מפתח מסוג Android ומציינים את שם החבילה של האפליקציה (לדוגמה, com.example.my_app).

      • חשוב להזין את אותו שם חבילה שציינתם כשיצרתם את אפליקציית Android ב-Firebase בפרויקט Firebase. הערך של שם החבילה הוא תלוי אותיות רישיות.

      • ב-App Check, כל שם חבילה יכול להתאים רק למפתח reCAPTCHA אחד.

      אינטרנט

      יוצרים מפתח מסוג אינטרנט ומציינים את כל הדומיינים של אפליקציות האינטרנט.

      • App Check לא תומך באפליקציות אינטרנט שפועלות ביותר מ-250 דומיינים.

      • לעולם אל תוסיפו את localhost כדומיין למפתח reCAPTCHA שנפרס (או עומד להיפרס) בסביבת הייצור.

      • משאירים את האפשרות "שימוש באתגר תיבת סימון" לא מסומנת.

      הוראות מפורטות זמינות במאמר יצירת מפתחות reCAPTCHA שמבוססים על ניקוד.

    4. שימו לב לכל מפתח. צריך להוסיף אותם לתהליך הרישום במסוף Firebase.

  3. במסוף Firebase, נכנסים לקטע Security (אבטחה) > App Check.

  4. בכרטיסייה Apps, רושמים כל אחת מהאפליקציות בפלטפורמת היעד לשימוש ב-App Check עם הספק reCAPTCHA Enterprise. צריך לספק את המפתח שקיבלת במסוף Google Cloud.

  5. אופציונלי: מגדירים את אורך החיים (TTL) של האסימון.

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

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

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

  6. אופציונלי: קובעים הגדרות מתקדמות.

  7. לוחצים על שמירה.

(אופציונלי) קביעת הגדרות מתקדמות

כשמשתמש פותח את האפליקציה, reCAPTCHA Enterprise מעריך את רמת הסיכון של האינטראקציה של המשתמש במפתח, ומחזיר ציון בין 0.0 ל-1.0, במרווחים של 0.1.

  • ציון של 0.0 מציין שהאינטראקציה מהווה סיכון גבוה ויכול להיות שמקורה בתרמית.
  • ציון של 1.0 מציין שהאינטראקציה היא בסיכון נמוך וסביר מאוד שהיא לגיטימית.

ב-App Check אתם יכולים להגדיר סף סיכון לאפליקציה כדי להתאים את הסבילות שלכם לסיכון הזה.

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

2. מוסיפים את הפלאגין App Check לאפליקציה

כדי להשתמש בספק reCAPTCHA Enterprise, צריך להוסיף את הפלאגין התואם של App Check.

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

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

    flutter run
    

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

באפליקציה, צריך להפעיל את App Check לפני שמשתמשים בשירותים אחרים של Firebase.

import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_app_check/firebase_app_check.dart';
import 'firebase_options.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
  await FirebaseAppCheck.instance.activate(
    providerWeb: ReCaptchaEnterpriseProvider(WEB_SITE_KEY),
    providerAndroid: const AndroidReCaptchaProvider(ANDROID_SITE_KEY),
    providerApple: const AppleReCaptchaProvider(IOS_SITE_KEY),
  );
  runApp(App());
}

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

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

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

מעקב אחרי מדדים

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

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

הפעלת האכיפה של App Check

אחרי שתבינו איך App Check ישפיע על המשתמשים שלכם ותהיו מוכנים להמשיך, תוכלו להפעיל את האכיפה של App Check:

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

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

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

פרטים נוספים זמינים במאמר שימוש ב-App Check עם ספק אימות לצורכי ניפוי באגים באפליקציות Flutter.

תמחור

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

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