Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

הגן על אישורי הענן של אפליקציית Firebase ML iOS שלך

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

1. צמצם את היקף מפתחות ה- API הקיימים

ראשית, הגדר את מפתחות ה- API הקיימים שלך כדי לאפשר גישה ל- Cloud Vision API:

  1. פתח את האישורים בדף של קונסולת הענן של Google. כשתתבקש, בחר את הפרויקט שלך.

  2. עבור כל מפתח API קיים ברשימה, פתח את תצוגת העריכה.

  3. במקטע הגבלות API, בחר הגבל המפתח, ואז להוסיף לרשימה את כל APIs שאליו אתה רוצה את המפתח API כדי לקבל גישה. הקפד לא כולל את ה- API חזון קלאוד.

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

עכשיו, מפתחות API הקיים שלך לא יעניק גישה לשירותי ענן ML, אבל כל מקש ימשיכו לעבוד עבור כל APIs שהוספת לרשימת ההגבלות API שלה.

הערה שאם תפעיל כול APIs נוסף בעתיד, אתה חייב להוסיף אותם לרשימת הגבלות API עבור מפתח API הישים.

2. צור מפתח API חדש לשימוש עם Firebase ML

לאחר מכן, צור מפתח API חדש עבור Firebase ML המאפשר שיחות רק ל- Cloud Vision API:

  1. חזור אל אישורי הדף. ודא שפרויקט Firebase שלך ​​עדיין נבחר.

  2. לחץ על צור אישורים> מפתח API. לרשום את מפתח API החדש, ולאחר מכן לחץ על הגבל מפתח.

  3. במקטע הגבלות API, בחר הגבל המפתח, ולאחר מכן להוסיף לרשימה רק ב- API חזון קלאוד.

מפתח API זה מעניק גישה רק ל- Cloud Vision API וניתן להשתמש בו על ידי Firebase ML לגישה לדגמים מבוססי ענן.

כדי לסייע בהפחתת ההשלכות של מפתח שנפגע, עליך להפחית את מכסת ה- Cloud Vision API למשתמש מהגדרת ברירת המחדל שלו. לשם כך:

  1. פתח את מכסות API חזון קלאוד הדף של קונסולת הענן של Google. כשתתבקש, בחר את הפרויקט שלך.

  2. בבקשות סעיף, להגדיר את הבקשות לדקה לכול מכסה המשתמש למשהו סביר עבור האפליקציה שלך. לדוגמה, אם האפליקציה שלך כרוכה בהעלאת תמונה של מסמך כדי להחזיר את הטקסט שלו, לא סביר שמשתמש יעשה זאת יותר מפעם אחת בכמה שניות, כך שמכסה של 30-40 כנראה תהיה בטוחה.

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

4. התקשר לממשקי API של Cloud באמצעות מפתח ה- API שלך ב- Firebase ML

לבסוף, באפליקציה שלך, הגדר את Firebase ML לשימוש במפתח ה- API החדש שלך.

מכיוון שמפתח ה- API של Firebase ML מאפשר גישה לא מאומתת ל- Cloud Vision API, חשוב לשמור על המפתח חסוי כדי למנוע שימוש וחיובים לא מורשים בחשבון החיוב שלך. לשם כך, עליך להימנע מהכללת מפתח ה- API שלך בינארי של האפליקציה שלך. במקום זאת, בזמן ריצה של אפליקציות, ודא כי משתמש טוב ידוע מחובר, ורק לאחר מכן, אחזר את מפתח ה- API מהשרת.

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

לאחר שהאפליקציה שלך רכשה בבטחה את מפתח ה- API, כאשר ברצונך לקרוא ל- Firebase ML Cloud API, ציין את המפתח:

מָהִיר

if let cloudVisionKey = getYourApiKey() {  // See note above about securing your API key
    let options = VisionCloudDetectorOptions()
    options.apiKeyOverride = cloudVisionKey
    let cloudDetector = Vision.vision().cloudLandmarkDetector(options: options)
}

Objective-C

NSString *cloudVisionKey = [self getYourApiKey];  // See note above about securing your API key
if (cloudVisionKey != nil) {
    FIRVisionCloudDetectorOptions *options =
            [[FIRVisionCloudDetectorOptions alloc] init];
    options.APIKeyOverride = cloudVisionKey;
    FIRVisionCloudLandmarkDetector *landmarkDetector =
            [vision cloudLandmarkDetectorWithOptions:options];
}

בנוסף, עליך לפעול על פי העצה הכללית אבטחת מפתח API .

הצעדים הבאים

עיין checklist ההשקה לקבלת מידע על הכנת האפליקציה כדי ההשקה במהלך שימוש בתכונות אחרות Firebase.