برای محافظت از APIها در برابر مشتریان غیرمجاز، Firebase App Check را اجرا کنید
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
وقتی مستقیماً از یک برنامه تلفن همراه یا وب با یک API تماس میگیرید (مثلاً APIهایی که امکان دسترسی به مدلهای هوش مصنوعی تولیدی را فراهم میکنند)، API در معرض سوء استفاده از سوی مشتریان غیرمجاز است. برای کمک به محافظت از این APIها، میتوانید از Firebase App Check برای تأیید اینکه همه تماسهای API ورودی از برنامه واقعی شما هستند استفاده کنید.
Firebase AI Logic یک دروازه پروکسی ارائه میکند که به شما امکان میدهد با Firebase App Check یکپارچه شوید و از APIهای مولد مدل AI که توسط تلفن همراه و برنامههای وب شما نامیده میشوند محافظت کنید. استفاده از App Check با Firebase AI Logic SDK از همه پیکربندیهای ما پشتیبانی میکند:
از هر دو ارائه دهنده "Gemini API" محافظت می کند: Gemini Developer API و Vertex AI Gemini API .
از تمام مدل های پشتیبانی شده، چه مدل های Gemini و چه مدل های Imagen محافظت می کند.
خلاصه سطح بالا از نحوه عملکرد App Check
با App Check ، دستگاههایی که برنامه شما را اجرا میکنند از یک برنامه یا ارائهدهنده تأیید دستگاه استفاده میکنند که یکی یا هر دو مورد زیر را تأیید میکند:
درخواست ها از برنامه معتبر شما سرچشمه می گیرند
درخواست ها از یک دستگاه معتبر و دستکاری نشده سرچشمه می گیرند
این تأییدیه به هر درخواستی که برنامه شما با استفاده از Firebase AI Logic SDK ارائه میکند پیوست میشود. وقتی اجرای App Check را فعال میکنید، درخواستهای مشتریان بدون گواهی معتبر رد میشوند، و همچنین هر درخواستی که از برنامه یا پلتفرمی که مجوز آن را ندارید رد میشود.
توصیه می کنیم هنگام تنظیم App Check ، مطمئن شوید که برای محافظت پیشرفته آینده (معروف به محافظت از پخش مجدد ) آماده شده اید.
توجه داشته باشید که اگر هیچ یک از ارائهدهندگان پیشفرض برای نیازهای شما کافی نیست، میتوانید یک ارائهدهنده سفارشی را پیادهسازی کنید که از یک ارائهدهنده گواهی شخص ثالث یا تکنیکهای گواهینامه خودتان استفاده میکند.
برای مشاهده محتوا و کد ارائه دهنده خاص در این صفحه، روی ارائه دهنده API Gemini خود کلیک کنید.
هنگام استفاده از App Check با Firebase AI Logic در برنامههای Flutter، باید صریحاً در حین نمونهبرداری از App Check عبور کنید، مانند موارد زیر:
// ...finalai=awaitFirebaseAI.googleAI(appCheck:FirebaseAppCheck.instance,// for Flutter, pass in App Check explicitly);// ...
برای محافظت پیشرفته آینده آماده شوید
فعال کردن استفاده از توکنهای با استفاده محدود برای پلتفرمهای اپل (نسخه 12.2.0+)، اندروید (نسخه 17.2.0+، BoM v34.2.0+)، وب (نسخه 12.3.0+)، و فلاتر (نسخه 3.2.0+، BoM نسخه 4.2.0+) پشتیبانی میشود. پشتیبانی از Unity به زودی ارائه می شود.
بهطور پیشفرض، App Check از نشانههای جلسه استفاده میکند که زمان قابل تنظیم برای زندگی (TTL) بین 30 دقیقه تا 7 روز دارند. این نشانههای جلسه توسط App Check SDK ذخیره میشوند و همراه با درخواستهای برنامه شما ارسال میشوند.
در آینده، App Check گزینه فعال کردن محافظت از پخش مجدد برای Firebase AI Logic را اضافه می کند (مشابه پشتیبانی که App Check قبلاً برای برخی منابع دیگر ارائه می دهد). هنگامی که محافظت از پخش مجدد فعال است، حفاظت را به روش های زیر افزایش می دهد:
App Check تنها در صورتی به درخواستها اجازه میدهد که با نوع خاصی از توکن به نام رمز استفاده محدود همراه باشند.
پس از تأیید توکن با استفاده محدود، توکن مصرف می شود تا فقط یک بار بتوان از آن استفاده کرد و از حملات مجدد جلوگیری کرد.
برای آماده شدن برای محافظت از پخش مجدد، توصیه میکنیم استفاده از نشانههای با استفاده محدود را به عنوان بخشی از راهاندازی App Check فعال کنید. به این ترتیب، وقتی محافظت از پخش مجدد در دسترس قرار گرفت، میتوانید آن را زودتر فعال کنید زیرا تعداد بیشتری از کاربران شما در نسخههایی از برنامه شما هستند که توکنهایی با استفاده محدود ارسال میکنند.
اگر اکنون استفاده از نشانه های با استفاده محدود را در برنامه خود فعال می کنید (در حالی که محافظت از پخش مجدد در دسترس نیست) به موارد زیر توجه کنید:
App Check استفاده از نشانههای جلسه معتبر را مسدود نمیکند .
درست مانند نشانههای جلسه، توکنهای با استفاده محدود توسط App Check SDK ذخیره میشوند و همراه با درخواستها ارسال میشوند. این توکنهای با استفاده محدود مقدار کمی محافظت اضافی نسبت به توکنهای جلسه پیشفرض ارائه میکنند، زیرا توکنهای با استفاده محدود در مقایسه با نشانههای جلسه، TTL کوتاهتری دارند (فقط ۵ دقیقه و قابل تنظیم نیست).
حتی اگر نشانههای استفاده محدود به مدت 5 دقیقه معتبر هستند، SDK همچنان برای هر درخواست یک رمز جدید ایجاد میکند. این فرآیند می تواند مقداری تاخیر به درخواست شما اضافه کند.
با این حال، هنگامی که در آینده حفاظت از پخش مجدد برای Firebase AI Logic در دسترس باشد (و شما آن را فعال کنید)، استفاده از نشانه های جلسه و استفاده مجدد از نشانه های با استفاده محدود امکان پذیر نخواهد بود. توجه داشته باشید که تأخیر اضافی برای تولید یک توکن جدید برای هر درخواست همچنان وجود خواهد داشت.
استفاده از توکنهای با استفاده محدود را فعال کنید
برای مشاهده محتوا و کد ارائه دهنده خاص در این صفحه، روی ارائه دهنده API Gemini خود کلیک کنید.
در اینجا نحوه فعال کردن استفاده از نشانه های با استفاده محدود آورده شده است:
در برنامه خود در طول نمونه سازی، با تنظیم پارامتر useLimitedUseAppCheckTokens روی true ، استفاده از نشانه های با استفاده محدود را فعال کنید:
سویفت
// ...// During instantiation, enable usage of limited-use tokensletai=FirebaseAI.firebaseAI(backend:.googleAI(),useLimitedUseAppCheckTokens:true)// ...
Kotlin
// ...// During instantiation, enable usage of limited-use tokensvalai=Firebase.ai(backend=GenerativeBackend.googleAI(),useLimitedUseAppCheckTokens=true)// ...
Java
// ...// During instantiation, enable usage of limited-use tokensFirebaseAIai=FirebaseAI.getInstance(/* backend: */GenerativeBackend.googleAI(),/* useLimitedUseAppCheckTokens: */true);// ...
Web
// ...// During instantiation, enable usage of limited-use tokensconstai=getAI(firebaseApp,{backend:newGoogleAIBackend(),useLimitedUseAppCheckTokens:true});// ...
Dart
// ...// During instantiation, enable usage of limited-use tokensfinalai=awaitFirebaseAI.googleAI(appCheck:FirebaseAppCheck.instance,// for Flutter, pass in App Check explicitlyuseLimitedUseAppCheckTokens:true,);// ...
وحدت
استفاده از توکن های با استفاده محدود با بازی های یونیتی در نسخه های بعدی پشتیبانی خواهد شد. به زودی دوباره بررسی کنید!
درک کنید که Firebase AI Logic چگونه با App Check یکپارچه می شود
برای استفاده از Firebase AI Logic SDK، Firebase AI Logic API ( firebasevertexai.googleapis.com ) باید در پروژه Firebase شما فعال باشد. این به این دلیل است که درخواستهای ایجاد شده توسط Firebase AI Logic SDK ابتدا به سرور Firebase AI Logic ارسال میشود، که بهعنوان یک دروازه پروکسی عمل میکند که در آن تأیید اعتبار Firebase App Checkقبل از اینکه درخواست اجازه داده شود به باطن ارائهدهنده « Gemini API » انتخابی شما و APIها برای دسترسی به مدلهای Gemini و Imagen انجام شود، انجام میشود.
تاریخ آخرین بهروزرسانی 2025-09-02 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-09-02 بهوقت ساعت هماهنگ جهانی."],[],[],null,["\u003cbr /\u003e\n\nWhen you call an API directly from a mobile or web app (for example, the APIs\nthat allow access to generative AI models), the API is vulnerable to abuse by\nunauthorized clients. To help protect these APIs, you can use\n[Firebase App Check](/docs/app-check) to verify that all incoming API calls\nare from your actual app.\n\nFirebase AI Logic provides a proxy gateway that lets you integrate with\nFirebase App Check and protect the generative AI model APIs called by your\nmobile and web apps. Using App Check with the\nFirebase AI Logic SDKs supports all our configurations:\n\n- Protects both \"Gemini API\" providers: Gemini Developer API and\n Vertex AI Gemini API.\n\n- Protects all supported models, both Gemini models and Imagen\n models.\n\n| We **strongly recommend implementing\n| Firebase App Check into your app as early as possible**, even during development, so that every version of your app is protected from API abuse.\n\nHigh-level summary of how App Check works\n\nWith App Check, devices running your app use an app or device attestation\nprovider that verifies one or both of the following:\n\n- Requests originate from your authentic app\n- Requests originate from an authentic, untampered device\n\nThis attestation is attached to every request your app makes using a\nFirebase AI Logic SDK. When you enable App Check enforcement,\nrequests from clients without a valid attestation will be rejected, as will any\nrequest originating from an app or platform you haven't authorized.\n\nWe recommend that when you set up App Check, make sure to\n[prepare for upcoming enhanced protection](#enhanced-protection)\n(known as *replay protection*).\n\nYou can find [detailed information about App Check](/docs/app-check) in its\ndocumentation, including its [quotas and limits](/docs/app-check#quotas_limits).\n\nAvailable providers and implementation instructions\n\nThe App Check documentation provides descriptions of attestation providers\nas well as implementation instructions.\n\n1. Choose a default provider, and follow the implementation instructions at the\n following links:\n\n - **Apple platforms** : [DeviceCheck](/docs/app-check/ios/devicecheck-provider) or [App Attest](/docs/app-check/ios/app-attest-provider)\n - **Android** : [Play Integrity](/docs/app-check/android/play-integrity-provider)\n - **Web** : [reCAPTCHA Enterprise](/docs/app-check/web/recaptcha-enterprise-provider)\n - **Flutter** : Supports [all the default providers above](/docs/app-check/flutter/default-providers) \n Also, make sure to follow [special instantiation requirements](#instantiation-flutter) for Flutter and App Check.\n - **Unity** : Supports [all the default providers above](/docs/app-check/unity/default-providers)\n\n Note that if none of the default providers are sufficient for your needs,\n then you can [implement a custom provider](/docs/app-check/custom-provider)\n that uses either a third-party attestation provider or your own attestation\n techniques.\n2. *(Recommended)*\n [Prepare for upcoming enhanced protection from App Check](#enhanced-protection)\n (known as *replay protection*).\n\n3. *(Required)* Before you release your app to real users,\n [**enable enforcement of App Check**](/docs/app-check/enable-enforcement).\n\nSpecial instantiation required for Flutter\n\n|-------------------------------------------------------------------------------------------------------------------------------------|\n| *Click your Gemini API provider to view provider-specific content and code on this page.* Gemini Developer API Vertex AI Gemini API |\n\nWhen using App Check with Firebase AI Logic in Flutter apps, you need to\nexplicitly pass in App Check during instantiation, like so: \n\n // ...\n\n final ai = await FirebaseAI.googleAI(\n appCheck: FirebaseAppCheck.instance, // for Flutter, pass in App Check explicitly\n );\n\n // ...\n\nPrepare for upcoming enhanced protection\n\n|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| ***Enabling the usage of limited-use tokens is supported for Apple platforms (v12.2.0+), Android (v17.2.0+, BoM v34.2.0+), Web (v12.3.0+), and Flutter (v3.2.0+, BoM v4.2.0+).** Support for Unity is coming soon.* |\n\nBy default, App Check uses *session tokens* which have a configurable\ntime to live (TTL) between 30 minutes and 7 days.\nThese session tokens are cached by the App Check SDK and sent along with\nrequests from your app.\n\nIn the future, App Check will add the option to enable *replay protection*\nfor Firebase AI Logic (similar to the support that App Check already\noffers for some other resources). When replay protection is enabled, it\nenhances protection in the following ways:\n\n- App Check will only allow requests if they're accompanied by a special\n kind of token called a *limited-use token*.\n\n- After the limited-use token is verified, the token is consumed so that it can\n be used only once, preventing replay attacks.\n\n**To prepare for replay protection, we recommend that you\n[enable the usage of limited-use tokens](#enable-limited-use-tokens)** as part\nof setting up App Check. That way, when replay protection becomes available,\nthen you can enable it sooner because more of your users will be on versions\nof your app that send limited-use tokens.\n\nNote the following if you enable usage of limited-use tokens in your app now\n(while replay protection is unavailable):\n\n- App Check does *not* block the usage of *valid session tokens*.\n\n- Just like session tokens, limited-use tokens are cached by the\n App Check SDK and sent along with requests. These limited-use tokens\n provide a *small* amount of additional protection than the default session\n tokens because limited-use tokens have a shorter TTL\n (only 5 minutes and not adjustable) compared to session tokens.\n\n- Even though limited-use tokens are valid for 5 minutes, the SDK\n will still generate a new token for *each* request. This process can add some\n latency to your request.\n\nHowever, when replay protection is available for Firebase AI Logic in the\nfuture (and you enable it), the use of session tokens and the reuse of\nlimited-use tokens won't be possible. Note that the additional latency for\ngenerating a new token for each request will still happen.\n\nEnable usage of limited-use tokens\n\n|-------------------------------------------------------------------------------------------------------------------------------------|\n| *Click your Gemini API provider to view provider-specific content and code on this page.* Gemini Developer API Vertex AI Gemini API |\n\n| **Note:** Consider setting up limited-use tokens to be a Firebase Remote Config parameter so that you can control its setting remotely rather than having it hard-coded in your app. Learn more about [using Remote Config](/docs/ai-logic/solutions/remote-config).\n\nHere's how to enable usage of limited-use tokens:\n\n1. [Implement App Check](#available-providers), and make sure that you've\n [enabled App Check enforcement](/docs/app-check/enable-enforcement)\n for your app.\n\n2. In your app during instantiation, enable the usage of limited-use tokens by\n setting the `useLimitedUseAppCheckTokens` parameter to `true`:\n\n Swift \n\n\n // ...\n\n // During instantiation, enable usage of limited-use tokens\n let ai = FirebaseAI.firebaseAI(\n backend: .googleAI(),\n useLimitedUseAppCheckTokens: true\n )\n\n // ...\n\n Kotlin \n\n\n // ...\n\n // During instantiation, enable usage of limited-use tokens\n val ai = Firebase.ai(\n backend = GenerativeBackend.googleAI(),\n useLimitedUseAppCheckTokens = true\n )\n\n // ...\n\n Java \n\n\n // ...\n\n // During instantiation, enable usage of limited-use tokens\n FirebaseAI ai = FirebaseAI.getInstance(\n /* backend: */ GenerativeBackend.googleAI(),\n /* useLimitedUseAppCheckTokens: */ true\n );\n\n // ...\n\n Web \n\n\n // ...\n\n // During instantiation, enable usage of limited-use tokens\n const ai = getAI(firebaseApp, {\n backend: new GoogleAIBackend(),\n useLimitedUseAppCheckTokens: true\n });\n\n // ...\n\n Dart \n\n\n // ...\n\n // During instantiation, enable usage of limited-use tokens\n final ai = await FirebaseAI.googleAI(\n appCheck: FirebaseAppCheck.instance, // for Flutter, pass in App Check explicitly\n useLimitedUseAppCheckTokens: true,\n );\n\n // ...\n\n Unity\n\n Using limited-use tokens with Unity games will be supported in a\n future release. Check back soon!\n\nUnderstand how Firebase AI Logic integrates with App Check\n\nTo use the Firebase AI Logic SDKs, the\n[Firebase AI Logic API (`firebasevertexai.googleapis.com`)](https://console.cloud.google.com/apis/library/firebasevertexai.googleapis.com?project=_)\nmust be enabled in your Firebase project. This is because requests made by the\nFirebase AI Logic SDKs are first sent to the Firebase AI Logic\nserver, which acts as a proxy gateway where Firebase App Check verification\ntakes place *before* the request is allowed to proceed to your chosen\n\"Gemini API\" provider's backend and the APIs to access the Gemini\nand Imagen models."]]