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

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

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

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

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

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

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

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

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

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

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

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

ג'אווה

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

Kotlin + KTX

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

3. אתחל את בדיקת האפליקציה

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

ג'אווה

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

Kotlin + KTX

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

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

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

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

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

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

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

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

תמונת מסך של עמוד הערכים 'בדיקת אפליקציות'

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

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

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

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

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

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

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

  • אם חלק ניכר מהבקשות האחרונות מגיעות מלקוחות מיושנים ככל הנראה, כדי למנוע הפרעה למשתמשים, שקול לחכות למשתמשים נוספים שיעדכנו את האפליקציה שלך לפני שתאפשר אכיפה. אכיפת בדיקת אפליקציות באפליקציה שפורסמה תשבור גרסאות קודמות של אפליקציות שאינן משולבות ב- 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. אפשר אכיפה

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

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

כדי לאפשר אכיפה עבור מסד נתונים בזמן אמת ואחסון ענן:

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

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

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

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

פונקציות ענן

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

הצעדים הבאים

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

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