Catch up on everything we announced at this year's Firebase Summit. Learn more

אפשר בדיקת אפליקציות באמצעות SafetyNet באנדרואיד

דף זה מראה לך כיצד להפעיל App Check באפליקציית Android, באמצעות ספק SafetyNet המובנה. כאשר אתה מפעיל App Check, אתה עוזר להבטיח שרק האפליקציה שלך יכולה לגשת למשאבי Firebase של הפרויקט שלך. ראה סקירה כללית של תכונה זו.

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

1. הגדר את פרויקט Firebase שלך

  1. להוסיף Firebase לפרויקט Android שלך אם לא עשה זאת.

  2. הירשם אפליקציות כך שישתמש בדיקת יישום עם ספק SafetyNet בתוך גדרות הפרויקט> בדיקת יישום קטע במסוף Firebase. יהיה עליך לספק טביעת אצבע SHA-256 של תעודת החתימה של האפליקציה שלך.

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

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

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

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

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

במודול שלך (ברמת היישום) קובץ Gradle (בדרך כלל app/build.gradle ), להכריז על התלות של האפליקציה בדוק הספרייה אנדרואיד:

Java

dependencies {
    implementation 'com.google.firebase:firebase-appcheck-safetynet:16.0.0-beta04'
}

קוטלין+KTX

dependencies {
    implementation 'com.google.firebase:firebase-appcheck-safetynet:16.0.0-beta04'
}

3. אתחול App Check

הוסף את קוד האתחול הבא לאפליקציה שלך כך שהיא תפעל לפני שתשתמש ב-SDK אחר של Firebase:

Java

FirebaseApp.initializeApp(/*context=*/ this);
FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
firebaseAppCheck.installAppCheckProviderFactory(
        SafetyNetAppCheckProviderFactory.getInstance());

קוטלין+KTX

FirebaseApp.initializeApp(/*context=*/this)
val firebaseAppCheck = FirebaseAppCheck.getInstance()
firebaseAppCheck.installAppCheckProviderFactory(
    SafetyNetAppCheckProviderFactory.getInstance()
)

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

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

4. מעקב אחר מדדי בקשות

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

מסד נתונים בזמן אמת, Cloud Firestore ואחסון בענן

כלי חשוב שאתה יכול להשתמש בו כדי לקבל החלטה זו עבור מסד נתונים בזמן אמת, Cloud Firestore ו-Cloud Storage הוא מסך מדדי הבקשה של App Check.

להצגת מדדי בקשת בדיקת היישום עבור מוצר, לפתוח את גדרות פרויקט> בדיקת יישום קטע במסוף Firebase. לדוגמה:

צילום מסך של דף מדדי בדיקת האפליקציה

מדדי הבקשות עבור כל מוצר מחולקים לארבע קטגוריות:

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

  • בקשות לקוח מיושנות הן אלה חסרים אסימון בדיקת יישום. בקשות אלה עשויות להיות מגרסה ישנה יותר של Firebase SDK לפני בדיקת האפליקציה נכללה באפליקציה.

  • בקשות ממוצא לא ידוע הם אלה חסרים אפליקציה בדוק האסימון, ואינם נראים כאילו הם באים Firebase SDK. אלה עשויים להיות מבקשות שנעשו עם מפתחות API גנובים או בקשות מזויפות שנעשו ללא Firebase SDK.

  • בקשות לא חוקיות הן כי יש אפליקציה חוקית בדוק אסימון, שעשוי להיות מלקוח inauthentic ניסיון להתחזות האפליקציה שלך, או מסביבות לחיקוי.

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

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

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

  • אם האפליקציה שלך עדיין לא הושקה, עליך להפעיל מיד את אכיפת בדיקת האפליקציה, מכיוון שאין לקוחות מיושנים בשימוש.

פונקציות ענן

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

{
  "severity": "INFO",    // INFO, WARNING, or ERROR
  "logging.googleapis.com/labels": {"firebase-log-type": "callable-request-verification"},
  "jsonPayload": {
    "message": "Callable header verifications passed.",
    "verifications": {
      // ...
      "app": "MISSING",  // VALID, INVALID, or MISSING
    }
  }
}

אתה יכול לנתח את הערכים האלה במסוף Google Cloud ידי יצירת יומנים מבוסס מונה מטרי עם מסנן הערכים הבא:

resource.type="cloud_function"
resource.labels.function_name="YOUR_CLOUD_FUNCTION"
resource.labels.region="us-central1"
labels.firebase-log-type="callable-request-verification"

תווית מטרי באמצעות שדה jsonPayload.verifications.appCheck .

5. אפשר אכיפה

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

מסד נתונים בזמן אמת, Cloud Firestore ואחסון בענן

כדי לאפשר אכיפה עבור מסד נתונים בזמן אמת, Cloud Firestore (iOS ו-Android) ואחסון בענן:

  1. פתח את גדרות פרויקט> בדיקת יישום קטע במסוף Firebase.

  2. הרחב את תצוגת המדדים של המוצר שעבורו ברצונך להפעיל אכיפה.

  3. לחץ לאכוף לאשר את בחירתך.

שים לב שיכולות לחלוף עד 10 דקות לאחר הפעלת האכיפה עד שהוא ייכנס לתוקף.

פונקציות ענן

ראה להפעיל את האפליקציה בדוק אכיפה עבור פונקציות ענן .

הצעדים הבאים

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

ראה השתמש App בדוק עם ספק debug על אנדרואיד .