כשמפעילים API ישירות מאפליקציה לנייד או מאפליקציית אינטרנט (לדוגמה, ממשקי ה-API שמאפשרים גישה למודלים של AI גנרטיבי), ה-API חשוף לניצול לרעה על ידי לקוחות לא מורשים. כדי להגן על ממשקי ה-API האלה, אפשר להשתמש ב-Firebase App Check כדי לוודא שכל הקריאות הנכנסות ל-API מגיעות מהאפליקציה שלכם.
Firebase AI Logic מספקת שער פרוקסי שמאפשר לכם לשלב עם Firebase App Check ולהגן על ממשקי ה-API של מודלים של AI גנרטיבי שמופעלים על ידי אפליקציות לנייד ואפליקציות אינטרנט. השימוש ב-App Check עם ערכות ה-SDK של Firebase AI Logic תומך בכל ההגדרות שלנו:
מגן על שני ספקי Gemini API: Gemini Developer API ו-Vertex AI Gemini API.
ההגנה חלה על כל המודלים הנתמכים, גם על מודלים של Gemini וגם על מודלים של Imagen.
סיכום כללי של אופן הפעולה של App Check
באמצעות App Check, מכשירים שמריצים את האפליקציה שלכם משתמשים בספק אימות אפליקציה או מכשיר שמאמת אחד מהדברים הבאים, או את שניהם:
- הבקשות מגיעות מהאפליקציה המאומתת שלכם
- הבקשות מגיעות ממכשיר מקורי שלא בוצעו בו שינויים
האישור הזה מצורף לכל בקשה שהאפליקציה שולחת באמצעות SDK מסוג Firebase AI Logic. כשמפעילים את האכיפה של App Check, בקשות מלקוחות ללא אישור תקף יידחו, וכך גם בקשות שמקורן באפליקציה או בפלטפורמה שלא אישרתם.
מומלץ להגדיר את App Check כך שתתכוננו להגנה משופרת (שנקראת הגנה מפני שידור חוזר).
במסמכי התיעוד של App Check אפשר למצוא מידע מפורט על App Check, כולל מכסות ומגבלות.
ספקים זמינים והוראות הטמעה
במאמרי העזרה של App Check יש תיאורים של ספקי אימות והוראות להטמעה.
בוחרים ספק ברירת מחדל ופועלים לפי הוראות ההטמעה בקישורים הבאים:
- פלטפורמות של Apple: DeviceCheck או App Attest
- Android: Play Integrity
- Web: reCAPTCHA Enterprise
- Flutter: תומך בכל ספקי ברירת המחדל שצוינו למעלה
בנוסף, חשוב לפעול בהתאם לדרישות המיוחדות ליצירת מופע של Flutter ושל App Check. - Unity: תומך בכל ספקי ברירת המחדל שצוינו למעלה
שימו לב שאם אף אחד מהספקים שמוגדרים כברירת מחדל לא מתאים לצרכים שלכם, אתם יכולים להטמיע ספק בהתאמה אישית שמשתמש בספק אימות צד שלישי או בטכניקות אימות משלכם.
(מומלץ) הכנה להגנה משופרת שתופעל בקרוב מ-App Check (הידועה בשם הגנה מפני הפעלה חוזרת).
(חובה) לפני שמפרסמים את האפליקציה למשתמשים אמיתיים, צריך להפעיל את האכיפה של App Check.
נדרשת יצירה מיוחדת של מופע ב-Flutter
|
לוחצים על הספק Gemini API כדי לראות בדף הזה תוכן וקוד שספציפיים לספק. |
כשמשתמשים ב-App Check עם Firebase AI Logic באפליקציות Flutter, צריך להעביר את App Check באופן מפורש במהלך יצירת המופע, כך:
// ...
final ai = await FirebaseAI.googleAI(
appCheck: FirebaseAppCheck.instance, // for Flutter, pass in App Check explicitly
);
// ...
הכנה לקראת הגנה משופרת שתופעל בקרוב
| הפעלת השימוש בטוקנים לשימוש מוגבל נתמכת בפלטפורמות של Apple (גרסה 12.2.0 ואילך), ב-Android (גרסה 17.2.0 ואילך, BoM גרסה 34.2.0 ואילך), באינטרנט (גרסה 12.3.0 ואילך) וב-Flutter (גרסה 3.2.0 ואילך, BoM גרסה 4.2.0 ואילך). בקרוב תהיה תמיכה גם ב-Unity. |
כברירת מחדל, App Check משתמש באסימוני סשן עם אורך חיים (TTL) שניתן להגדרה בין
בעתיד, App Check תוסיף אפשרות להפעיל הגנה מפני הפעלה חוזרת של Firebase AI Logic (בדומה לתמיכה ש-App Check כבר מציעה למשאבים אחרים). כשההגנה מפני שידור חוזר מופעלת, היא משפרת את ההגנה בדרכים הבאות:
App Check יאפשר רק בקשות שמצורף אליהן סוג מיוחד של טוקן שנקרא טוקן לשימוש מוגבל.
אחרי שהטוקן לשימוש מוגבל מאומת, המערכת משתמשת בו כדי למנוע מתקפות מסוג Replay, כך שאפשר להשתמש בו רק פעם אחת.
כדי להתכונן להגנה מפני הפעלה חוזרת, מומלץ להפעיל את השימוש בטוקנים לשימוש מוגבל כחלק מההגדרה של App Check. כך, כשההגנה מפני הפעלה חוזרת תהיה זמינה, תוכלו להפעיל אותה מוקדם יותר כי יותר משתמשים ישתמשו בגרסאות של האפליקציה ששולחות טוקנים לשימוש מוגבל.
אם תפעילו עכשיו את השימוש בטוקנים לשימוש מוגבל באפליקציה שלכם (בזמן שההגנה מפני הפעלה חוזרת לא זמינה), חשוב לשים לב לנקודות הבאות:
App Check לא חוסם את השימוש בטוקנים תקינים של סשנים.
בדומה לאסימוני סשן, אסימונים לשימוש מוגבל נשמרים במטמון על ידי App Check SDK ונשלחים יחד עם הבקשות. אסימוני השימוש המוגבל מספקים הגנה נוספת בהיקף קטן יותר מאסימוני הסשן שמוגדרים כברירת מחדל, כי אסימוני השימוש המוגבל הם בעלי TTL קצר יותר (
5 דקות בלבד , ואי אפשר לשנות את זה) בהשוואה לאסימוני הסשן.למרות שהאסימונים לשימוש מוגבל תקפים למשך
5 דקות , ה-SDK עדיין ייצור אסימון חדש לכל בקשה. התהליך הזה עלול להוסיף זמן אחזור לבקשה.
עם זאת, כשיהיה בעתיד אמצעי הגנה מפני הפעלה חוזרת של Firebase AI Logic (ותפעילו אותו), לא תהיה אפשרות להשתמש בטוקנים של סשנים או לעשות שימוש חוזר בטוקנים לשימוש מוגבל. חשוב לזכור שעדיין תהיה השהיה נוספת בתהליך יצירת טוקן חדש לכל בקשה.
הפעלת השימוש באסימונים לשימוש מוגבל
|
לוחצים על הספק Gemini API כדי לראות בדף הזה תוכן וקוד שספציפיים לספק. |
כך מאפשרים שימוש באסימונים לשימוש מוגבל:
מטמיעים את App Check ומוודאים שהפעלתם את האכיפה של App Check באפליקציה.
באפליקציה, במהלך יצירת המופע, מפעילים את השימוש בטוקנים לשימוש מוגבל על ידי הגדרת הפרמטר
useLimitedUseAppCheckTokensלערךtrue:Swift
// ... // During instantiation, enable usage of limited-use tokens let ai = FirebaseAI.firebaseAI( backend: .googleAI(), useLimitedUseAppCheckTokens: true ) // ...Kotlin
// ... // During instantiation, enable usage of limited-use tokens val ai = Firebase.ai( backend = GenerativeBackend.googleAI(), useLimitedUseAppCheckTokens = true ) // ...Java
// ... // During instantiation, enable usage of limited-use tokens FirebaseAI ai = FirebaseAI.getInstance( /* backend: */ GenerativeBackend.googleAI(), /* useLimitedUseAppCheckTokens: */ true ); // ...Web
// ... // During instantiation, enable usage of limited-use tokens const ai = getAI(firebaseApp, { backend: new GoogleAIBackend(), useLimitedUseAppCheckTokens: true }); // ...Dart
// ... // During instantiation, enable usage of limited-use tokens final ai = await FirebaseAI.googleAI( appCheck: FirebaseAppCheck.instance, // for Flutter, pass in App Check explicitly useLimitedUseAppCheckTokens: true, ); // ...Unity
שימוש באסימונים לשימוש מוגבל במשחקי Unity ייתמך בגרסה עתידית. בדוק שוב בקרוב!
איך Firebase AI Logic משתלב עם App Check
כדי להשתמש בערכות ה-SDK של Firebase AI Logic, צריך להפעיל את Firebase AI Logic API (firebasevertexai.googleapis.com) בפרויקט Firebase. הסיבה לכך היא שבקשות שנשלחות על ידי ערכות ה-SDK של Firebase AI Logic נשלחות קודם לשרת Firebase AI Logic, שפועל כשער פרוקסי שבו מתבצעת אימות Firebase App Check לפני שהבקשה מקבלת אישור להמשיך אל הקצה העורפי של ספק Gemini API שבחרתם ואל ממשקי ה-API לגישה למודלים של Gemini ושל Imagen.