منع إساءة استخدام Gemini API باستخدام ميزة "فحص التطبيقات من Firebase"

عند طلب واجهة برمجة تطبيقات مباشرةً من تطبيق على الأجهزة الجوّالة أو تطبيق ويب (على سبيل المثال، واجهات برمجة التطبيقات التي تتيح الوصول إلى نماذج الذكاء الاصطناعي التوليدي)، تكون واجهة برمجة التطبيقات عُرضة لإساءة الاستخدام من قِبل البرامج العميلة غير المفوّضة. للمساعدة في حماية واجهات برمجة التطبيقات هذه من إساءة الاستخدام، يمكنك استخدام Firebase App Check للتحقّق من أنّ جميع طلبات واجهة برمجة التطبيقات الواردة هي من تطبيقك الفعلي ومن جهاز لم يتم التلاعب به.

Firebase AI Logic توفّر بوابة وكيل تتيح لك التكامل مع Firebase App Check وحماية واجهات برمجة التطبيقات الخاصة بنماذج الذكاء الاصطناعي التوليدي التي تطلبها تطبيقاتك على الأجهزة الجوّالة وتطبيقات الويب. عند استخدام App Check مع حِزم تطوير البرامج (SDK) الخاصة بـ Firebase AI Logic، يتم دعم جميع إعداداتنا:

  • حماية كلٍّ من موفِّرَي "Gemini API": Gemini Developer API و Vertex AI Gemini API

  • حماية جميع النماذج المتوافقة، سواء نماذج Gemini أو نماذج Imagen

تتيح ميزة App Check أيضًا الحماية من إعادة استخدام الرموز، ما يعني أنّه لا يمكن استخدام الرمز المميّز لـ App Check إلا مرة واحدة.

ملخّص عالي المستوى لكيفية عمل App Check

باستخدام App Check، تستخدم الأجهزة التي تشغّل تطبيقك موفِّر شهادات للتطبيق أو الجهاز يتحقّق من أحد الإجراءَين التاليَين أو كليهما:

  • الطلبات واردة من تطبيقك الأصلي
  • الطلبات واردة من جهاز أصلي لم يتم التلاعب به

يتم إرفاق هذه الشهادة بكل طلب يقدّمه تطبيقك باستخدام حزمة تطوير البرامج (SDK) الخاصة بـ Firebase AI Logic عند فرض App Check، سيتم رفض الطلبات الواردة من البرامج العميلة التي لا تتضمّن شهادة صالحة، بالإضافة إلى أي طلب وارد من تطبيق أو منصة لم تمنحها الإذن.

عند إعداد App Check، ننصحك بإضافة الحماية من إعادة استخدام الرموز، ما يجعل الرموز المميّزة لـ App Check مخصّصة للاستخدام مرة واحدة فقط. يوفّر هذا الخيار حماية محسّنة تتجاوز الحماية الأساسية ويسمح لك بضبط مستوى حماية مناسب لتطبيقك وحالات استخدامه.

يمكنك العثور على معلومات مفصّلة عن App Check في مستنداتها، بما في ذلك الحصص والحدود.

إعداد App Check

توفر مستندات App Check أوصافًا تفصيلية لموفري الشهادات بالإضافة إلى تعليمات مفصلة عن التنفيذ.

  1. اختَر موفِّر شهادات واتّبِع تعليمات التنفيذ على الروابط التالية:

    يُرجى العِلم أنّه إذا لم يكن أي من موفّري الشهادات هؤلاء كافيًا لتلبية احتياجاتك ، يمكنك تنفيذ موفِّر مخصّص يستخدم إما موفِّر شهادات تابعًا لجهة خارجية أو تقنيات الشهادات الخاصة بك.

  2. (مطلوب) فعِّل فرض ميزة App Check قبل إرسال تطبيقك إلى نظام تحكّم في رمز المصدر متاح للجميع أو مشاركة تطبيقك أو إتاحته للجميع.

  3. (ننصحك بذلك) حسِّن الحماية من خلال إضافة الحماية من إعادة استخدام الرموز، ما يعني أنّه لا يمكن استخدام الرمز المميّز لميزة "App Check" إلا مرة واحدة.

  4. للتطوير المحلي عند فرض App Check، عليك إعداد App Check موفِّر تصحيح الأخطاء لتجاوز الشهادة مع الحفاظ على فرض App Check. اطّلِع على تعليمات الإعداد لمنصتك: iOS+ | Android | الويب | Flutter | Unity.

تحسين الحماية من خلال إضافة الحماية من إعادة استخدام الرموز

ننصحك باستخدام أحدث إصدارات حِزم SDK، ولكن تأكَّد من استخدام أحد هذه الإصدارات على الأقل لاستخدام الحماية من إعادة استخدام الرموز:
منصات Apple الإصدار 12.2.0 أو إصدار أحدث | Android BoM الإصدار 34.14.0 أو إصدار أحدث (App Check الإصدار 19.1.0 أو إصدار أحدث) | الويب الإصدار 12.14.0 أو إصدار أحدث | Flutter الإصدار 4.15.0 أو إصدار أحدث (App Check الإصدار 4.10.0 أو إصدار أحدث) | Unity الإصدار 13.12.0 أو إصدار أحدث

تستخدم App Check تلقائيًا الرموز المميّزة للجلسة التي تتراوح مدة بقائها (TTL) بين 30 دقيقة و7 أيام، ويمكنك ضبطها. تخزّن حزمة SDK لميزة App Check هذه الرموز المميّزة للجلسة مؤقتًا، ويتم إرسالها مع الطلبات من تطبيقك، ويمكن إعادة استخدامها إلى أن تنتهي مدة بقائها. يُعد استخدام الرموز المميّزة للجلسة حماية أساسية.

مع ذلك، يمكنك تحسين الحماية بما يتجاوز هذه الحماية الأساسية من خلال فرض الحماية من إعادة استخدام الرموز، التي تستخدم الرموز المميّزة المخصّصة للاستخدام المحدود بدلاً من ذلك. عند فرض الحماية من إعادة استخدام الرموز، يحدث ما يلي:

  • App Check ستحظر الطلبات الموجَّهة إلى Firebase AI Logic التي تستخدم الرموز المميّزة للجلسة. بدلاً من ذلك، App Check لن تسمح بطلب موجَّه إلى Firebase AI Logic إلا إذا كان يستخدم رمزًا مميّزًا جديدًا مخصّصًا للاستخدام المحدود.

  • بعد التحقّق من الرمز المميّز المخصّص للاستخدام المحدود، يتم استخدامه حتى لا يمكن استخدامه إلا مرة واحدة، ما يمنع الهجمات التي تهدف إلى إعادة استخدام الرموز.

  • تنشئ حزمة SDK لميزة App Check رمزًا مميّزًا جديدًا مخصّصًا للاستخدام المحدود لـ كل طلب. يُرجى العِلم أنّ هذه العملية يمكن أن تؤثّر في طلباتك من خلال إضافة بعض وقت الاستجابة وأحيانًا التكلفة (حسب موفِّر الشهادات).

إعداد الحماية من إعادة استخدام الرموز وفرضها

انقر على موفِّر Gemini API لعرض المحتوى الخاصَّ بالموفِّر والرمز البرمجي على هذه الصفحة.

إليك كيفية إعداد الحماية من إعادة استخدام الرموز وفرضها:

  1. إذا لم يسبق لك ذلك، نفِّذ App Check و فعِّل فرض App Check لتطبيقك.

  2. فعِّل استخدام الرموز المميّزة المخصّصة للاستخدام المحدود.

    في تطبيقك أثناء عملية إنشاء المثيل، اضبط المعلمة 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(
      useLimitedUseAppCheckTokens: true,
    );
    
    // ...
    
    

    Unity

    // ...
    
    // During instantiation, enable usage of limited-use tokens
    var ai = FirebaseAI.GetInstance(
      useLimitedUseAppCheckTokens: true
    );
    
    // ...
    
  3. افرض الحماية من إعادة استخدام الرموز.

    1. في قاعدة رموز تطبيقك، تأكَّد من أنّك فعّلت استخدام الرموز المميّزة المخصّصة للاستخدام المحدود (راجِع الخطوة السابقة).

    2. في وحدة تحكّم Firebase، انتقِل إلى الأمان > فحص التطبيقات.

    3. وسِّع عرض المقاييس لـ Firebase AI Logic.

    4. تأكَّد من أنّ الحماية الأساسية مفروضة، ثم انقر على متابعة.

    5. بالنسبة إلى الحماية من إعادة استخدام الرموز، اختَر غير مفروضة (للمراقبة فقط) أو مفروضة.

      ضع في اعتبارك ما يلي لتحديد وقت فرض الحماية من إعادة استخدام الرموز:

      • ننصحك بمراقبة طلباتك إذا كان من المحتمل أن يستخدم عدد كبير من المستخدمين إصدارات سابقة من تطبيقك بدون تفعيل استخدام الرموز المميّزة المخصّصة للاستخدام المحدود. إذا فرضت الحماية من إعادة استخدام الرموز على الفور، سيتم حظر الطلبات الواردة من هؤلاء المستخدمين.

      • يمكنك مراقبة المقياس لم يتم التحقّق منه: تم إعادة استخدام الرمز المميّز على وجه التحديد، وهو عدد الطلبات التي تتضمّن رمزًا مميّزًا سبق استخدامه في طلب سابق. راقِب هذا المقياس في وحدة التحكّم Firebase (انتقِل إلى الأمان > فحص التطبيقات > واجهات برمجة التطبيقات علامة التبويب).

        إذا كانت نسبة كبيرة من الطلبات الأخيرة تندرج ضمن هذه الفئة، يمكنك تجنُّب إيقاف المستخدمين عن استخدام التطبيق والنظر في الانتظار لفرض الحماية من إعادة استخدام الرموز إلى أن يحدِّث المزيد من المستخدمين إلى إصدار من تطبيقك يستخدم الرموز المميّزة المخصّصة للاستخدام المحدود.

فهم كيفية دمج Firebase AI Logic مع App Check

لاستخدام حِزم SDK الخاصة بميزة Firebase AI Logic، يجب تفعيل واجهة برمجة التطبيقات الخاصة بميزة Firebase AI Logic (firebasevertexai.googleapis.com) في مشروع Firebase. وذلك لأنّ الطلبات التي تقدّمها حِزم SDK الخاصة بـ Firebase AI Logic تُرسَل أولاً إلى خادم Firebase AI Logic ، الذي يعمل كبوابة وكيل حيث يتم التحقّق من Firebase App Check قبل السماح للطلب بالانتقال إلى خلفية موفِّر "Gemini API" الذي اخترته وواجهات برمجة التطبيقات للوصول إلى نماذج Gemini وImagen.

(اختياري) فرض App Check بدون موفِّر شهادات للإنتاج (مقدّم خدمة تصحيح الأخطاء فقط)

يمكنك فرض App Check على AI Logic بدون تسجيل تطبيقك لدى موفِّر شهادات للإنتاج. يسمح لك هذا الإعداد باستخدام App Check مقدّم خدمة تصحيح الأخطاء للبدء في استخدام AI Logic بسهولة أكبر مع الحفاظ على حماية Gemini API.

  1. تحقَّق مما إذا كانت ميزة App Check مفروضة حاليًا على ميزة AI Logic.

    1. في وحدة تحكّم Firebase، انتقِل إلى علامة التبويب الأمان > فحص التطبيقات > واجهات برمجة التطبيقات.

    2. ابحث عن صف Firebase AI Logic إذا كان مكتوبًا Unenforced، تابع بقية هذه التعليمات.

  2. انقر على صف Firebase AI Logic، وستظهر لك رسوم بيانية للمقاييس. أسفل هذه الرسوم البيانية، انقر على إعداد.

  3. في الشاشة الأولى من مربّع الحوار (الحماية الأساسية)، اختَر مفروضة، ثم انقر على متابعة.

  4. في الشاشة التالية (الحماية من إعادة استخدام الرموز)، اختَر غير مفعّلة. يمكنك إعداد ذلك في وقت لاحق والرجوع إلى سير عمل الإعداد هذا. انقر على متابعة.

  5. في الشاشة الأخيرة، راجِع الاعتبارات الخاصة بفرض App Check للتأكّد من أنّك مستعد لفرض App Check. إذا كنت مستعدًا، انقر على متابعة.

    ليس عليك تسجيل تطبيقاتك إذا كنت تريد فقط فرض ميزة App Check واستخدام مقدّم خدمة تصحيح الأخطاء فقط مع AI Logic في تطبيق يتم إعداده قبل الإنتاج. ومع ذلك، عندما تكون مستعدًا لإطلاق تطبيقك للمستخدمين النهائيين، عليك تسجيل تطبيقاتك كجزء من إعداد موفِّر شهادات للإنتاج (مثل App Attest أو Play Integrity أو reCAPTCHA Enterprise).

  6. للتطوير المحلي عند فرض App Check، عليك إعداد App Check موفِّر تصحيح الأخطاء لتجاوز الشهادة مع الحفاظ على فرض App Check.

    للحصول على تفاصيل حول إعداد مقدّم خدمة تصحيح الأخطاء، اطّلِع على التعليمات الخاصة بـ منصتك: iOS+ | Android | الويب | Flutter | Unity.