| בחירת פלטפורמה: | 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
אם עוד לא עשיתם זאת, מתקינים ומפעילים את Firebase בפרויקט Flutter.
במסוף Google Cloud, עוברים לדף Fraud Defense ומבצעים את הפעולות הבאות עבור הספק reCAPTCHA Enterprise:
מוודאים שאתם בפרויקט הנכון (אפשר לראות את בורר הפרויקטים בחלק העליון של המסך).
אם מופיעה בקשה, מפעילים את ה-API של reCAPTCHA Enterprise.
יוצרים מפתח על סמך פלטפורמת היעד:
iOS+
יוצרים מפתח מסוג iOS ומציינים את מזהה החבילה של האפליקציה (לדוגמה,
com.example.my_app).חשוב לוודא שהזנתם את אותו מזהה חבילה שסיפקתם כשבניתם את אפליקציית Apple ב-Firebase בפרויקט Firebase. הערך של מזהה החבילה תלוי אותיות רישיות.
במקרה של App Check, כל מזהה חבילה יכול להתאים רק למפתח reCAPTCHA אחד.
Android
יוצרים מפתח מסוג Android ומציינים את שם החבילה של האפליקציה (לדוגמה,
com.example.my_app).חשוב להזין את אותו שם חבילה שציינתם כשיצרתם את אפליקציית Android ב-Firebase בפרויקט Firebase. הערך של שם החבילה הוא תלוי אותיות רישיות.
במקרה של App Check, כל שם חבילה יכול להתאים רק למפתח reCAPTCHA אחד.
אינטרנט
יוצרים מפתח מסוג Web ומציינים כל אחד מהדומיינים של אפליקציות האינטרנט.
App Check לא תומך באפליקציות אינטרנט שפועלות ביותר מ-250 דומיינים.
לעולם אל תוסיפו את
localhostכדומיין למפתח reCAPTCHA שנפרס (או עומד להיפרס) בסביבת הייצור.משאירים את האפשרות 'שימוש באתגר תיבת סימון' לא מסומנת.
הוראות מפורטות זמינות במאמר יצירת מפתחות reCAPTCHA שמבוססים על ניקוד.
שימו לב לכל מפתח. תצטרכו להוסיף אותם לתהליך ההרשמה במסוף Firebase.
במסוף Firebase, עוברים אל Security (אבטחה) > App Check (בדיקת אפליקציות).
בכרטיסייה אפליקציות, רושמים כל אחת מהאפליקציות של פלטפורמת היעד לשימוש ב-App Check עם ספק reCAPTCHA Enterprise. תצטרכו לספק את המפתח שקיבלתם במסוף Google Cloud.
אופציונלי: מגדירים את אורך החיים (TTL) של האסימון.
בהגדרות רישום האפליקציה, מגדירים אורך חיים (TTL) מותאם אישית לטוקנים של App Check שהונפקו על ידי הספק. אפשר להגדיר את ה-TTL לכל ערך בין 30 דקות ל-7 ימים. כשמשנים את הערך הזה, חשוב לשים לב לשיקולים הבאים:
- אבטחה: ערכי TTL קצרים יותר מספקים אבטחה חזקה יותר, כי הם מצמצמים את חלון הזמן שבו תוקף יכול לנצל לרעה אסימון שדלף או יורט.
- ביצועים: ערכי TTL קצרים יותר אומרים שהאפליקציה תבצע אימות בתדירות גבוהה יותר. תהליך אימות האפליקציה מוסיף זמן אחזור לבקשות רשת בכל פעם שהוא מתבצע, ולכן ערך TTL קצר יכול להשפיע על ביצועי האפליקציה.
- מכסה ועלות: ערכי TTL קצרים ואימות חוזר תכוף מנצלים את המכסה מהר יותר, ובשירותים בתשלום, עלולים לעלות יותר. מידע נוסף על מכסות ומגבלות
ערך ברירת המחדל של TTL הוא שעה אחת, והוא סביר לרוב האפליקציות. הערה: הספרייה App Check מרעננת את האסימונים בערך בחצי מהזמן של ה-TTL.
אופציונלי: מגדירים הגדרות מתקדמות.
לוחצים על שמירה.
(אופציונלי) הגדרת הגדרות מתקדמות
כשמשתמש פותח את האפליקציה, 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.
מריצים את הפקודה הבאה מהרמה הבסיסית (root) של פרויקט Flutter כדי להתקין את הפלאגין:
flutter pub add firebase_app_checkאחרי שמסיימים, בונים מחדש את פרויקט 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 ב-Firebase AI Logic, ב-SQL Connect, ב-Realtime Database, ב-Cloud Firestore, ב-Cloud Storage, ב-Authentication, ב-Google Identity ל-iOS, ב-Maps JavaScript API וב-Places API (חדש).
- עוקבים אחרי מדדי הבקשות של App Check ב-Cloud Functions.
הפעלת האכיפה של App Check
אחרי שתבינו איך App Check ישפיע על המשתמשים שלכם ותהיו מוכנים להמשיך, תוכלו להפעיל את האכיפה של App Check:
- הפעלת אכיפה של App Check ב-Firebase AI Logic, SQL Connect, Realtime Database, Cloud Firestore, Cloud Storage, Authentication, Google Identity ל-iOS, Maps JavaScript API ו-Places API (חדש).
- מפעילים את האכיפה של App Check עבור Cloud Functions.
שימוש ב-App Check בסביבות ניפוי באגים
App Check מסווג סביבות מסוימות כלא חוקיות, כמו בקשות מאמולטור או מסימולטור, או מ-localhost במהלך הפיתוח או מסביבת אינטגרציה רציפה (CI).
כדי להריץ את האפליקציה בסביבות מהסוגים האלה אחרי שאמצעי ההגנה App Check ייאכפו, צריך ליצור גרסת ניפוי באגים של האפליקציה שמשתמשת בApp Check ספק ניפוי באגים במקום בספק אימות בסביבת הייצור.
פרטים נוספים זמינים במאמר שימוש ב-App Check עם ספק אימות לצורכי ניפוי באגים באפליקציות Flutter.
תמחור
App Check יוצר הערכה בשבילכם כדי לאמת את אסימון התגובה של המשתמש בכל פעם שהאפליקציה מרעננת את אסימון App Check שלה. הפרויקט ב-Firebase יחויב על כל הערכה שנוצרה מעבר למכסה החינמית. לפרטים נוספים, ראו התמחור של reCAPTCHA.
כברירת מחדל, האפליקציה תרענן את הטוקן הזה פעמיים בכל שעה. כדי לקבוע באיזו תדירות האפליקציה מרעננת את הטוקנים של App Check (וכך גם באיזו תדירות נוצרות הערכות חדשות), אתם יכולים להגדיר את משך החיים (TTL) של הטוקן.